제출 #972322

#제출 시각아이디문제언어결과실행 시간메모리
972322vjudge1코알라 (APIO17_koala)C++14
33 / 100
60 ms596 KiB
#include "koala.h" #include <bits/stdc++.h> using namespace std; int a[110], b[110]; int minValue(int N, int W) { // TODO: Implement Subtask 1 solution here. // You may leave this function unmodified if you are not attempting this // subtask. a[0]=1; playRound(a, b); for (int i=1; i<N; ++i) if (b[i]==0) return i; return 0; } int maxValue(int N, int W) { // TODO: Implement Subtask 2 solution here. // You may leave this function unmodified if you are not attempting this // subtask. for (int i=0; i<N; ++i){ a[i]=1; } playRound(a, b); // for (int i=0; i<N; ++i) if (b[i]) cout << i+1 << ' '; // cout << '\n'; for (int i=0; i<N; ++i){ a[i]=(b[i]>a[i] && a[i])?2:0; } playRound(a, b); // for (int i=0; i<N; ++i) if (b[i]) cout << i+1 << ' '; // cout << '\n'; for (int i=0; i<N; ++i){ a[i]=(b[i]>a[i] && a[i])?4:0; } playRound(a, b); // for (int i=0; i<N; ++i) if (b[i]) cout << i+1 << ' '; // cout << '\n'; for (int i=0; i<N; ++i){ a[i]=(b[i]>a[i] && a[i])?11:0; } playRound(a, b); for (int i=0; i<N; ++i) if (b[i]>a[i] && a[i]) return i; // for (int i=0; i<N; ++i) if (b[i]) cout << i+1 << ' '; // cout << '\n'; return 0; } int greaterValue(int N, int W) { // TODO: Implement Subtask 3 solution here. // You may leave this function unmodified if you are not attempting this // subtask. for (int i=0; i<N; ++i){ a[i]=1; } playRound(a, b); if ((b[0]>a[0])!=(b[1]>a[1])){ if (b[0]>a[0]) return 0; return 1; } if (b[0]>a[0] && b[0]>a[1]){ for (int i=0; i<N; ++i) a[i]=(i==0 || i==1)?10:0; playRound(a, b); if (b[0]>a[0]) return 0; return 1; } // bitset<1225> bs[11]; // for (int i=0; i<=10; ++i) bs[i].reset(); // for (int v=1; v<=10; ++v){ // int cur=0; // for (int x=0; x<N; ++x) for (int y=x+1; y<N; ++y) if (x<50 && y<50){ // for (int i=0; i<N; ++i) a[i]=(i==x || i==y)?v:0; // playRound(a, b); // bs[v].set(cur++, b[x]!=b[y]); // } // } // for (int i=0; i<1024; ++i){ // bitset<1225> tot; // for (int j=0; j<10; ++j) if (i>>j&1) tot|=bs[j+1]; // if (tot.all()){ // for (int j=0; j<10; ++j) if (i>>j&1) cout << j+1 << ' '; // cout << '\n'; // } // } for (int v:{1, 3, 6}){ for (int i=0; i<N; ++i) a[i]=(i==0 || i==1)?v:0; playRound(a, b); if ((b[0]>a[0])!=(b[1]>a[1])){ if (b[0]>a[0]) return 0; return 1; } } return 0; } void allValues(int N, int W, int *P) { if (W == 2*N) { // TODO: Implement Subtask 4 solution here. // You may leave this block unmodified if you are not attempting this // subtask. } else { // TODO: Implement Subtask 5 solution here. // You may leave this block unmodified if you are not attempting this // subtask. } }
#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...