Submission #525960

# Submission time Handle Problem Language Result Execution time Memory
525960 2022-02-13T10:37:57 Z Slavita Set (COCI21_set) C++14
10 / 110
1000 ms 167284 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;
gp_hash_table<string, 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[to_string(v[0]) + "_" + to_string(v[1]) + "_" + to_string(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 10 ms 19064 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19020 KB Output is correct
4 Correct 28 ms 21464 KB Output is correct
5 Correct 10 ms 19116 KB Output is correct
6 Correct 10 ms 18996 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 21 ms 20432 KB Output is correct
9 Correct 11 ms 19140 KB Output is correct
10 Correct 20 ms 20436 KB Output is correct
11 Correct 11 ms 19020 KB Output is correct
12 Correct 19 ms 20436 KB Output is correct
13 Correct 10 ms 18996 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19020 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 10 ms 19064 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19020 KB Output is correct
4 Correct 28 ms 21464 KB Output is correct
5 Correct 10 ms 19116 KB Output is correct
6 Correct 10 ms 18996 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 21 ms 20432 KB Output is correct
9 Correct 11 ms 19140 KB Output is correct
10 Correct 20 ms 20436 KB Output is correct
11 Correct 11 ms 19020 KB Output is correct
12 Correct 19 ms 20436 KB Output is correct
13 Correct 10 ms 18996 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19020 KB Output is correct
16 Correct 12 ms 19068 KB Output is correct
17 Correct 10 ms 19020 KB Output is correct
18 Correct 10 ms 19048 KB Output is correct
19 Execution timed out 1103 ms 167284 KB Time limit exceeded
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 10 ms 19064 KB Output is correct
2 Correct 10 ms 19020 KB Output is correct
3 Correct 10 ms 19020 KB Output is correct
4 Correct 28 ms 21464 KB Output is correct
5 Correct 10 ms 19116 KB Output is correct
6 Correct 10 ms 18996 KB Output is correct
7 Correct 10 ms 19020 KB Output is correct
8 Correct 21 ms 20432 KB Output is correct
9 Correct 11 ms 19140 KB Output is correct
10 Correct 20 ms 20436 KB Output is correct
11 Correct 11 ms 19020 KB Output is correct
12 Correct 19 ms 20436 KB Output is correct
13 Correct 10 ms 18996 KB Output is correct
14 Correct 10 ms 19020 KB Output is correct
15 Correct 10 ms 19020 KB Output is correct
16 Correct 12 ms 19068 KB Output is correct
17 Correct 10 ms 19020 KB Output is correct
18 Correct 10 ms 19048 KB Output is correct
19 Execution timed out 1103 ms 167284 KB Time limit exceeded
20 Halted 0 ms 0 KB -