zhangjinxuan 发表于 2023-8-20 17:41:40

梦想星际舰队第9关 && FCOI #7 第二题重定向题解【原创】

本帖最后由 zhangjinxuan 于 2023-8-20 17:56 编辑



梦想星际舰队第9关 && FCOI #7 题解

第二题:重定向

题目描述
由于 zhangjinxuan 在 FCR6 中没有加 freopen,导致原本的 400 分变成了 0 分。

zhangjinxuan 很不爽,想要做出一个可以自动写出 freopen 的代码的程序。

现在有一个字符串 S,表示题目名。

而输入文件就是将 S 和 .in 拼接,输出文件就是将 S 和 .out 拼接。

请你输出关于 freopen 的代码。

具体格式见样例。

输入格式
一个字符串S

输出格式
见样例。


输入输出样例
输入 #1
clock
输出 #1
freopen("clock.in","r",stdin);
freopen("clock.out","w",stdout);
输入 #2
a
输出 #2
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
输入 #3
cspmustfreopen
输出 #3
freopen("cspmustfreopen.in","r",stdin);
freopen("cspmustfreopen.out","w",stdout);


数据范围
1≤|S|≤2×10^5

S 由小写英文字母构成。

其他说明
本题目为 zhangjinxuan 原创题目。
测试链接:https://www.luogu.com.cn/problem/U321902


答案与解析
**** Hidden Message *****

最佳战士排行榜
**** Hidden Message *****

isdkz 发表于 2023-8-20 17:42:12

根据题目描述,我们需要根据输入的字符串S生成关于 freopen 的代码。根据题目要求,输入文件名是将S和".in"拼接,输出文件名是将S和".out"拼接。

因此,我们只需要将输入的字符串S与固定的字符串".in"和".out"进行拼接,并将结果输出即可。

以下是解决方案的代码示例:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string S;
    cin >> S;

    cout << "freopen(\"" << S << ".in\",\"r\",stdin);" << endl;
    cout << "freopen(\"" << S << ".out\",\"w\",stdout);" << endl;

    return 0;
}


希望能够帮助到您!

陶远航 发表于 2023-8-20 17:42:21

根据题目描述,这道题目要求根据给定的字符串S,生成关于 freopen 的代码,用于将输入文件和输出文件与程序进行重定向。

以下是根据您提供的样例进行的代码实现:

def generate_freopen_code(S):
    input_file = S + ".in"
    output_file = S + ".out"
    code = 'freopen("{0}","r",stdin);\nfreopen("{1}","w",stdout);'.format(input_file, output_file)
    return code

S = input()
result = generate_freopen_code(S)
print(result)


希望对您有所帮助!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

陈尚涵 发表于 2023-8-20 17:43:03

kankan

陶远航 发表于 2023-8-20 17:43:12

{:10_256:}

#include <cstdio>

char s;

int main() {
      scanf("%s", s + 1);
      printf("freopen("%s.in","r",stdin);\n", s + 1);
      fflush(stdout);
      printf("freopen("%s.out","w",stdout);\n", s + 1);
      return 0;
}

zhangjinxuan 发表于 2023-8-20 17:44:16

woc,这bbcode好恶心,反斜杠bug好烦

陶远航 发表于 2023-8-20 17:47:14

根据题目描述,要求根据输入的字符串S生成关于 freopen 的代码,将输入文件名和输出文件名与程序进行重定向。给出了一个C++代码示例,使用cout和字符串拼接的方式生成输出。

以下是使用Python代码实现的解决方案:

S = input()
code = 'freopen("{0}.in","r",stdin);\nfreopen("{0}.out","w",stdout);'.format(S)
print(code)


希望对您有所帮助!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

Ewan-Ahiouy 发表于 2023-8-20 17:47:24

#include <bits/stdc++.h>
using namespace std;

int main() {
    string a;
    cin >> a;
    cout << "freopen(\"" << a << ".in\",\"r\",stdin);" << endl;
    cout << "freopen(\"" << a << ".out\",\"w\",stdout);" << endl;

    return 0;
}

sfqxx 发表于 2023-8-20 18:00:36

{:10_269:}

sfqxx 发表于 2023-8-20 18:01:31

不记录是什么意思?不加rating吗?{:10_257:}

_Flowey_ 发表于 2023-8-20 18:08:20

var s: string;

begin
readln(s);
writeln('freopen("',s,'","r",stdin);');
writeln('freopen("',s,'.out","w",stdout);');
end.

sfqxx 发表于 2023-8-20 18:13:27

最佳给脚本没意思

zhangjinxuan 发表于 2023-8-20 18:16:24

sfqxx 发表于 2023-8-20 18:01
不记录是什么意思?不加rating吗?

要啊

sfqxx 发表于 2023-8-20 18:21:09


数据不清空,爆零两行泪。

多测不读完,爆零两行泪。

边界不特判,爆零两行泪。

贪心不证明,爆零两行泪。

D P 顺序错,爆零两行泪。

大小少等号,爆零两行泪。

变量不统一,爆零两行泪。

越界不判断,爆零两行泪。

调试不注释,爆零两行泪。

溢出不 l l,爆零两行泪。

sfqxx 发表于 2023-8-22 12:03:11

前2题,gpt可以解决,但后4题就寄了
页: [1]
查看完整版本: 梦想星际舰队第9关 && FCOI #7 第二题重定向题解【原创】