제출 #103895

#제출 시각아이디문제언어결과실행 시간메모리
103895autumn_eel코알라 (APIO17_koala)C++14
57 / 100
81 ms512 KiB
#include <bits/stdc++.h> #define rep(i,n)for(int i=0;i<(n);i++) using namespace std; #include "koala.h" int B[200],R[200]; int minValue(int N, int W) { memset(B,0,sizeof(B)); B[0]=1; playRound(B,R); rep(i,N){ if(B[i]>=R[i])return i; } return -1; } int maxValue(int N, int W) { rep(i,N){ B[i]=1; } playRound(B,R); vector<int>v; rep(i,N){ if(R[i]>1){ v.push_back(i); } } while(v.size()>1){ memset(B,0,sizeof(B)); int ave=W/v.size(); for(int i:v)B[i]=ave; playRound(B,R); vector<int>u; for(int i:v){ if(R[i]>B[i])u.push_back(i); } v=u; } return v[0]; } map<pair<int,int>,bool>mp; bool cmp(int a,int b,int W=100){ if(mp.count({a,b}))return mp[{a,b}]; if(mp.count({b,a}))return !mp[{b,a}]; int l=2,r=min(W/2,8); while(1){ int t=(l+r)/2; memset(B,0,sizeof(B)); B[a]=B[b]=t; playRound(B,R); bool f0=(B[a]<R[a]),f1=(B[b]<R[b]); if(f0^f1){ if(f0)return mp[{a,b}]=0; return mp[{a,b}]=1; } if(!f0)r=t-1; else l=t+1; } } int greaterValue(int N, int W) { mp.clear(); if(cmp(0,1,W))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 { mp.clear(); vector<int>v; rep(i,N)v.push_back(i); sort(v.begin(),v.end(),[&](int a,int b){return cmp(a,b,W);}); rep(i,v.size()){ P[v[i]]=i+1; } } }

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

koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
koala.cpp:78:3: note: in expansion of macro 'rep'
   rep(i,v.size()){
   ^~~
#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...