Submission #525959

# Submission time Handle Problem Language Result Execution time Memory
525959 2022-02-13T10:36:23 Z Slavita Set (COCI21_set) C++14
10 / 110
1000 ms 63428 KB
#include <bits/stdc++.h>
#pragma optimize("O3")
#pragma GCC optimize("-O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("fast-math")
#include <ext/pb_ds/assoc_container.hpp>
#define ve vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pi pair<int,int>
#define all(v) v.begin(),v.end()
#define si(v) (int)v.size()
#define en '\n'
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ordered_muiltiset tree<int, null_type,less_equal<>, rb_tree_tag,tree_order_statistics_node_update>
using namespace std;
using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;

const int N = 6e5 + 228;
const int big = 1e9;
const ll llbig = 1e18 + 228;
//ordered_set os; // os.order_of_key(4), (*os.find_by_order(5))
int n, m, k;
string a[N];
gp_hash_table<string, int> mem;
map<pair<pi, int>, bool> ans;

bool getbit(int x, int bit){
    bit--;
    return (x & (1 << bit)) == (1 << bit);
}

int main(){
    cin >> n >> k;
    for (int i = 1; i <= n; i++){
        cin >> a[i];

        mem[a[i]] = i;
        /*for (int mask = 0; mask <= (1 << (k + 1)); mask++){
            for (int j = 1; j <= k; j++){
                if (getbit(mask, j)){
                    if (a[i][j] == 1) str += "q";
                    if (a[i][j] == 2) str += "w";
                    if (a[i][j] == 3) str += "e";
                }else{
                    if (a[i][j] == 1) str += "1";
                    if (a[i][j] == 2) str += "2";
                    if (a[i][j] == 3) str += "3";
                }
            }
        }*/
    }

    for (int x = 1; x <= n; x++){
        for (int y = x + 1; y <= n; y++){
            string str = "";
            for (int i = 0; i < k; i++){
                if (a[x][i] == a[y][i]){
                    str += a[x][i];
                }
                if (a[x][i] != a[y][i]){
                    char c1 = a[x][i]; if ((int)a[x][i] > (int)a[y][i]) c1 = a[y][i];
                    char c2 = a[x][i]; if ((int)a[x][i] < (int)a[y][i]) c2 = a[y][i];
                    if (c1 == '2' && c2 == '3') str += "1";
                    if (c1 == '1' && c2 == '3') str += "2";
                    if (c1 == '1' && c2 == '2') str += "3";
                }
            }

            if (mem[str]) {
                ve v;
                v.pb(mem[str]);
                v.pb(x);
                v.pb(y);
                sort(all(v));
                ans[{{v[0], v[1]}, v[2]}] = 1;
            }
        }
    }
    cout << si(ans);
    return 0;
}
/*
*/

Compilation message

Main.cpp:2: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    2 | #pragma optimize("O3")
      |
# Verdict Execution time Memory Grader output
1 Correct 13 ms 19020 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19096 KB Output is correct
4 Correct 21 ms 19660 KB Output is correct
5 Correct 10 ms 19020 KB Output is correct
6 Correct 10 ms 19004 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 18 ms 19516 KB Output is correct
9 Correct 10 ms 19020 KB Output is correct
10 Correct 18 ms 19532 KB Output is correct
11 Correct 10 ms 19020 KB Output is correct
12 Correct 18 ms 19464 KB Output is correct
13 Correct 10 ms 19020 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19024 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 13 ms 19020 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19096 KB Output is correct
4 Correct 21 ms 19660 KB Output is correct
5 Correct 10 ms 19020 KB Output is correct
6 Correct 10 ms 19004 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 18 ms 19516 KB Output is correct
9 Correct 10 ms 19020 KB Output is correct
10 Correct 18 ms 19532 KB Output is correct
11 Correct 10 ms 19020 KB Output is correct
12 Correct 18 ms 19464 KB Output is correct
13 Correct 10 ms 19020 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19024 KB Output is correct
16 Correct 11 ms 19020 KB Output is correct
17 Correct 10 ms 19020 KB Output is correct
18 Correct 11 ms 19044 KB Output is correct
19 Execution timed out 1101 ms 63428 KB Time limit exceeded
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 13 ms 19020 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19096 KB Output is correct
4 Correct 21 ms 19660 KB Output is correct
5 Correct 10 ms 19020 KB Output is correct
6 Correct 10 ms 19004 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 18 ms 19516 KB Output is correct
9 Correct 10 ms 19020 KB Output is correct
10 Correct 18 ms 19532 KB Output is correct
11 Correct 10 ms 19020 KB Output is correct
12 Correct 18 ms 19464 KB Output is correct
13 Correct 10 ms 19020 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19024 KB Output is correct
16 Correct 11 ms 19020 KB Output is correct
17 Correct 10 ms 19020 KB Output is correct
18 Correct 11 ms 19044 KB Output is correct
19 Execution timed out 1101 ms 63428 KB Time limit exceeded
20 Halted 0 ms 0 KB -