Submission #1228447

#TimeUsernameProblemLanguageResultExecution timeMemory
1228447Nika533앨리스, 밥, 서킷 (APIO23_abc)C++17
12 / 100
94 ms13148 KiB
#pragma GCC diagnostic warning "-std=c++11" #include <bits/stdc++.h> #include "abc.h" //#define pb push_back //#define f first //#define s second //#define MOD 1000000007 //#define flush fflush(stdout) //#define all(x) (x).begin(),(x).end() //#define allr(x) (x).rbegin(), (x).rend() //#define pii pair<int,int> using namespace std; // you may find the definitions useful const int OP_ZERO = 0; // f(OP_ZERO, x0, x1) = 0 const int OP_NOR = 1; // f(OP_NOR, x0, x1) = !(x0 || x1) const int OP_GREATER = 2; // f(OP_GREATER, x0, x1) = (x0 > x1) const int OP_NOT_X1 = 3; // f(OP_NOT_X1, x0, x1) = !x1 const int OP_LESS = 4; // f(OP_LESS, x0, x1) = (x0 < x1) const int OP_NOT_X0 = 5; // f(OP_NOT_X0, x0, x1) = !x0 const int OP_XOR = 6; // f(OP_XOR, x0, x1) = (x0 ^ x1) const int OP_NAND = 7; // f(OP_NAND, x0, x1) = !(x0 && x1) const int OP_AND = 8; // f(OP_AND, x0, x1) = (x0 && x1) const int OP_EQUAL = 9; // f(OP_EQUAL, x0, x1) = (x0 == x1) const int OP_X0 = 10; // f(OP_X0, x0, x1) = x0 const int OP_GEQ = 11; // f(OP_GEQ, x0, x1) = (x0 >= x1) const int OP_X1 = 12; // f(OP_X1, x0, x1) = x1 const int OP_LEQ = 13; // f(OP_LEQ, x0, x1) = (x0 <= x1) const int OP_OR = 14; // f(OP_OR, x0, x1) = (x0 || x1) const int OP_ONE = 15; // f(OP_ONE, x0, x1) = 1 // Alice int // returns la alice( /* in */ const int n, /* in */ const char names[][5], /* in */ const unsigned short numbers[], /* out */ bool outputs_alice[] ) { // outputs_alice[0] = 1; // outputs_alice[1] = 0; // return 2; int num=numbers[0]; for (int i=0; i<16; i++) { int bb=0; if (num&(1<<i)) bb=1; outputs_alice[i]=bb; } return 16; } // Bob int // returns lb bob( /* in */ const int m, /* in */ const char senders[][5], /* in */ const char recipients[][5], /* out */ bool outputs_bob[] ) { // outputs_bob[0] = 1; // outputs_bob[1] = 1; // outputs_bob[2] = 0; // return 3; return m; } // Circuit int // returns l circuit( /* in */ const int la, /* in */ const int lb, /* out */ int operations[], /* out */ int operands[][2], /* out */ int outputs_circuit[][16] ) { function<int(int , int)> sum = [&](int x , int y){ return x + y; }; // operations[5] = 8; // operations[6] = 14; // operands[5][0] = 0; operands[5][1] = 4; // operands[6][0] = 2; operands[6][1] = 5; // int final_results[] = {20000, 0, 24464}; int m=lb; if (m==0) { operations[la+lb]=0; operands[la+lb][0]=0; operands[la+lb][1]=0; for (int j=0; j<16; j++) { outputs_circuit[0][j]=la+lb; } return la+lb+1; } int l=la+lb,r=la+lb+m*160-1; int fff=l; while (m--) { int ind=0; if (l==la+lb) { for (int i=l+9; i<=l+159; i+=10) { for (int j=i-9; j<=i-1; j++) { operands[j][0]=ind; operands[j][1]=ind; operations[j]=0; } operands[i][0]=ind; operands[i][1]=0; operations[i]=10; if (m==0) { outputs_circuit[0][ind]=i; } ind++; } l+=160; continue; } for (int i=l+9; i<=l+159; i+=10) { int lastc=i-2-10; if (i==l+9) lastc=fff; int lasta=ind; int lastv=i-160; operands[i-9][0]=lastc; operands[i-9][1]=lasta; operations[i-9]=6; operands[i-8][0]=i-9; operands[i-8][1]=lastv; operations[i-8]=6; operands[i-7][0]=lastc; operands[i-7][1]=lasta; operations[i-7]=8; operands[i-6][0]=lasta; operands[i-6][1]=lastv; operations[i-6]=8; operands[i-5][0]=lastc; operands[i-5][1]=lastv; operations[i-5]=8; operands[i-4][0]=i-7; operands[i-4][1]=i-6; operations[i-4]=14; operands[i-3][0]=i-4; operands[i-3][1]=i-5; operations[i-3]=14; operands[i-2][0]=i-3; operands[i-2][1]=i-3; operations[i-2]=10; operands[i-1][0]=i-3; operands[i-1][1]=i-3; operations[i-1]=10; operands[i][0]=i-8; operands[i][1]=i-8; operations[i]=10; if (m==0) { outputs_circuit[0][ind]=i; } ind++; } l+=160; } return r+1; }

Compilation message (stderr)

abc.cpp:1:32: warning: '-std=c++11' is not an option that controls warnings [-Wpragmas]
    1 | #pragma GCC diagnostic warning "-std=c++11"
      |                                ^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...