[백준 15820] 맞았는데 왜 틀리죠? (C#, C++) - soo:bak
작성일 :
문제 링크
설명
샘플과 시스템 테스트 결과에 따라 판정 결과를 출력하는 문제입니다.
접근법
샘플 구간과 시스템 구간을 따로 순회하며 모두 일치하는지 확인합니다.
모두 맞으면 Accepted, 샘플에서 틀리면 Wrong Answer를 출력합니다.
샘플은 모두 맞지만 시스템에서 틀리면 Why Wrong!!!를 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
class Program {
static void Main() {
var line = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
var s1 = line[0]; var s2 = line[1];
var sampleOk = true; var systemOk = true;
for (var i = 0; i < s1; i++) {
var p = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
if (p[0] != p[1]) sampleOk = false;
}
for (var i = 0; i < s2; i++) {
var p = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
if (p[0] != p[1]) systemOk = false;
}
var res = "Wrong Answer";
if (sampleOk && systemOk) res = "Accepted";
else if (sampleOk && !systemOk) res = "Why Wrong!!!";
Console.WriteLine(res);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int s1, s2;
if (!(cin >> s1 >> s2)) return 0;
bool sampleOk = true, systemOk = true;
for (int i = 0; i < s1; i++) {
ll a, b; cin >> a >> b;
if (a != b) sampleOk = false;
}
for (int i = 0; i < s2; i++) {
ll a, b; cin >> a >> b;
if (a != b) systemOk = false;
}
if (sampleOk && systemOk) cout << "Accepted\n";
else if (sampleOk && !systemOk) cout << "Why Wrong!!!\n";
else cout << "Wrong Answer\n";
return 0;
}