제출 #982224

#제출 시각아이디문제언어결과실행 시간메모리
9822248pete8앨리스, 밥, 서킷 (APIO23_abc)C++17
컴파일 에러
0 ms0 KiB
#include "abc.h" #include<bits/stdc++.h> // 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[] ){ //nume of char x4 //we will get a 10^8 value? then hash the bit //24 bit //each person =24+16=40; vector<pair<string,int>>v; return 0; int mx=40*n; for(int i=0;i<mx;i++)outputs_alice[i]=0; int st=0; for(int i=0;i<n;i++){ int sum=0; int base=1; for(int j=0;j<4;j++){ char a=names[i][j]; int val=0; if(a>='a'&&a<='z')val='a'-a; else val=26; sum+=(base*(val%10)); base*=10; val/=10; sum+=(base*(val%10)); base*=10; } for(int j=0;j<24;j++)if(sum&(1<<j))outputs_alice[st+j]=1; st+=24; for(int j=0;j<16;j++)if(numbers[i]&(1<<j))outputs_alice[st+j]=1; st+=16; } return mx; //block is 0->124 } // Bob int // returns lb bob( /* in */ const int m, /* in */ const char senders[][5], /* in */ const char recipients[][5], /* out */ bool outputs_bob[] ) { int st=0; //use name hashx2x900 //24x2x900 for(int i=0;i<(24*2*m);i++)outputs_bob[i]=0; for(int i=0;i<m;i++){ int sum=0; int base=1; for(int j=0;j<4;j++){ char a=senders[i][j]; int val=0; if(a>='a'&&a<='z')val='a'-a; else val=26; sum+=(base*(val%10)); base*=10; val/=10; sum+=(base*(val%10)); base*=10; } for(int j=0;j<24;j++)if(sum&(1<<j))outputs_bob[st+j]=1; st+=24; sum=0; base=1; for(int j=0;j<4;j++){ char a=recipients[i][j]; int val=0; if(a>='a'&&a<='z')val='a'-a; else val=26; sum+=(base*(val%10)); base*=10; val/=10; sum+=(base*(val%10)); base*=10; } for(int j=0;j<24;j++)if(sum&(1<<j))outputs_bob[st+j]=1; st+=24; } return (24*2*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] ) { //test int id=la+lb; int n=la/(40),m=lb/24; for(int j=0;j<n;j++)for(int i=0;i<16;i++)outputs_circuit[j][i]=-1; auto add=[&](int a,int b,int x){ operations[id]=x; operands[id][0]=a,operands[id][1]=b; id++; return id-1; }; auto actualadd=[&](int pos,int x,int who){//adding to "x" to bit "pos" of "who" int last=x; for(int k=pos;k<16;k++){ if(outputs_circuit[who][k]==-1){ outputs_circuit[who][k]=last; break; } int nx=add(last,outputs_circuit[who][k],OP_AND); outputs_circuit[who][k]=add(outputs_circuit[who][k],last,OP_XOR); last=nx; } }; for(int i=0;i<m;i++){//900 int st=la; //m*(n*hashname*2)*(n*hashname*2+32+16x16)<2e7; for(int j=0;j<n;j++){//30 int id=(40*j); int x=add(id,st,OP_EQUAL); for(int g=1;g<24;g++){//24 x=add(x,add(id+g,st+g,OP_EQUAL),OP_AND);//2 } for(int k=j;k<n;k++){ int id2=(40*k); int y=add(id2,st+24,OP_EQUAL); for(int g=1;g<24;g++){//24 y=add(y,add(id2+g,st+24+g,OP_EQUAL),OP_AND);//2 } for(int g=0;g<16;g++)actualadd(g,add(id+24+g,add(x,y,OP_AND),OP_AND),k); } } st+=24; /* wtf did i wrote TT this not gonna pass */ } return id; /* when we are multiplying if we look at it bit by bit a,b =shift a->a+b if its >16 then it will have to be shifted down but what if that bit is arldy on then we can find the max consecutive 1s bit and turn the pos+1 to 1 then make everything there 0 if we know the sender and reciever then we add reciever bit */ }

컴파일 시 표준 에러 (stderr) 메시지

abc.cpp: In function 'int alice(int, const char (*)[5], const short unsigned int*, bool*)':
abc.cpp:34:5: error: 'vector' was not declared in this scope
   34 |     vector<pair<string,int>>v;
      |     ^~~~~~
abc.cpp:34:5: note: suggested alternatives:
In file included from /usr/include/c++/10/vector:67,
                 from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from abc.cpp:2:
/usr/include/c++/10/bits/stl_vector.h:389:11: note:   'std::vector'
  389 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
In file included from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from abc.cpp:2:
/usr/include/c++/10/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
abc.cpp:34:12: error: 'pair' was not declared in this scope; did you mean 'std::pair'?
   34 |     vector<pair<string,int>>v;
      |            ^~~~
      |            std::pair
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from abc.cpp:2:
/usr/include/c++/10/bits/stl_pair.h:211:12: note: 'std::pair' declared here
  211 |     struct pair
      |            ^~~~
abc.cpp:34:17: error: 'string' was not declared in this scope
   34 |     vector<pair<string,int>>v;
      |                 ^~~~~~
abc.cpp:34:17: note: suggested alternatives:
In file included from /usr/include/c++/10/iosfwd:39,
                 from /usr/include/c++/10/ios:38,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from abc.cpp:2:
/usr/include/c++/10/bits/stringfwd.h:79:33: note:   'std::string'
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from abc.cpp:2:
/usr/include/c++/10/string:67:11: note:   'std::pmr::string'
   67 |     using string    = basic_string<char>;
      |           ^~~~~~
abc.cpp:34:24: error: expected primary-expression before 'int'
   34 |     vector<pair<string,int>>v;
      |                        ^~~