답안 #252140

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
252140 2020-07-24T10:15:40 Z Vimmer Karte (COCI15_karte) C++14
50 / 50
1 ms 384 KB
#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("no-stack-protector")

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define pf push_front
#define N 100010
#define M ll(1e9 + 7)
#define inf 1e9 + 1e9

using namespace std;
//using namespace __gnu_pbds;

typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
typedef short int si;
typedef array <int, 3> a3;
typedef array <int, 4> a4;
typedef pair <int, int> pt;
//typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

int main()
{
    //freopen("mining.in", "r", stdin); freopen("mining.out", "w", stdout);

    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    string s;

    cin >> s;

    bool mk[4][20];

    memset(mk, 0, sizeof(mk));

    bool bad = 0;

    for (int i = 0; i < sz(s); i++)
        if (s[i] == 'P')
        {
            int x = s[i + 1] - '0';

            x *= 10;

            i++;

            x += s[i + 1] - '0'; i++;

            if (mk[0][x]) bad = 1;

            mk[0][x] = 1;
        }
        else if (s[i] == 'K')
        {
            int x = s[i + 1] - '0';

            x *= 10;

            i++;

            x += s[i + 1] - '0'; i++;

            if (mk[1][x]) bad = 1;

            mk[1][x] = 1;
        }
        else if (s[i] == 'H')
        {
            int x = s[i + 1] - '0';

            x *= 10;

            i++;

            x += s[i + 1] - '0'; i++;

            if (mk[2][x]) bad = 1;

            mk[2][x] = 1;
        }
        else
        {
            int x = s[i + 1] - '0';

            x *= 10;

            i++;

            x += s[i + 1] - '0'; i++;

            if (mk[3][x]) bad = 1;

            mk[3][x] = 1;
        }

    if (bad) {cout << "GRESKA" << endl; exit(0);}

    for (int i = 0; i < 4; i++)
    {
        int kol = 0;

        for (int j = 1; j <= 13; j++) if (!mk[i][j]) kol++;

        cout << kol << " ";
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 0 ms 384 KB Output is correct
3 Correct 1 ms 384 KB Output is correct
4 Correct 0 ms 384 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 0 ms 384 KB Output is correct
7 Correct 0 ms 384 KB Output is correct
8 Correct 0 ms 384 KB Output is correct
9 Correct 0 ms 384 KB Output is correct
10 Correct 0 ms 384 KB Output is correct