Submission #92393

#TimeUsernameProblemLanguageResultExecution timeMemory
92393igziBroken Device (JOI17_broken_device)C++17
0 / 100
55 ms3568 KiB
#include <bits/stdc++.h> #include "Annalib.h" using namespace std; void Anna( int N, long long x, int K, int P[]){ int i; bool b[155]; int a[155]={67, 70, 94, 21, 88, 97, 77, 78, 89, 138, 111, 13, 75, 123, 145, 26, 62, 91, 105, 115, 76, 114, 144, 16, 106, 74, 108, 102, 86, 46, 28, 98, 5, 149, 126, 38, 130, 90, 27, 14, 119, 128, 139, 20, 53, 85, 117, 109, 39, 100, 24, 49, 0, 65, 143, 36, 61, 134, 73, 99, 4, 69, 82, 33, 136, 137, 147, 66, 6, 25, 19, 127, 133, 56, 40, 116, 23, 83, 68, 84, 71, 48, 54, 51, 30, 52, 31, 7, 12, 107, 55, 35, 22, 103, 8, 140, 121, 135, 141, 131, 57, 15, 101, 81, 118, 18, 129, 93, 11, 45, 9, 125, 148, 146, 63, 64, 72, 41, 50, 29, 80, 120, 79, 110, 47, 87, 60, 95, 1, 142, 42, 44, 58, 10, 132, 37, 113, 122, 43, 17, 2, 124, 104, 59, 92, 32, 3, 112, 34, 96}; for(i=0;i<N;i++) b[i]=false; for(i=0;i<K;i++){ b[P[i]]=true;} for(i=0;i<N;i+=3){ if((b[a[i]] && b[a[i+1]]) || (b[a[i+2]] && b[a[i+1]]) || (b[a[i]] && b[a[i+2]])) {Set(a[i],0); Set(a[i+1],0); Set(a[i+2],0); continue;} if(b[a[i]] || b[a[i+1]] || b[a[i+2]]){ Set(a[i],0); if(x%3==0) {Set(a[i+1],0); Set(a[i+2],1);} if(x%3==1) {Set(a[i+1],1); Set(a[i+2],0);} if(x%3==2) {Set(a[i+1],1); Set(a[i+2],1);} x/=3; } else{ Set(a[i],1); Set(a[i+1],x%2); x/=2; Set(a[i+2],x%2); x/=2; } } }
#include <bits/stdc++.h> #include "Brunolib.h" using namespace std; long long Bruno( int N, int A[]){ long long ans,st,i; int a[155]={67, 70, 94, 21, 88, 97, 77, 78, 89, 138, 111, 13, 75, 123, 145, 26, 62, 91, 105, 115, 76, 114, 144, 16, 106, 74, 108, 102, 86, 46, 28, 98, 5, 149, 126, 38, 130, 90, 27, 14, 119, 128, 139, 20, 53, 85, 117, 109, 39, 100, 24, 49, 0, 65, 143, 36, 61, 134, 73, 99, 4, 69, 82, 33, 136, 137, 147, 66, 6, 25, 19, 127, 133, 56, 40, 116, 23, 83, 68, 84, 71, 48, 54, 51, 30, 52, 31, 7, 12, 107, 55, 35, 22, 103, 8, 140, 121, 135, 141, 131, 57, 15, 101, 81, 118, 18, 129, 93, 11, 45, 9, 125, 148, 146, 63, 64, 72, 41, 50, 29, 80, 120, 79, 110, 47, 87, 60, 95, 1, 142, 42, 44, 58, 10, 132, 37, 113, 122, 43, 17, 2, 124, 104, 59, 92, 32, 3, 112, 34, 96}; ans=0; st=1; for(i=0;i<N;i+=3){ if(A[a[i]]==0 && A[a[i+1]]==0 && A[a[i+2]]==0) continue; if(A[a[i]]==1){ ans+=st*A[a[i+2]]; st*=2; ans+=st*A[a[i+1]]; st*=2; } else{ if(A[a[i+1]]==1 && A[a[i+2]]==0) ans+=st; if(A[a[i+1]]==1 && A[a[i+2]]==1) ans+=2*st; st*=3; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...