제출 #353737

#제출 시각아이디문제언어결과실행 시간메모리
353737IloveN코알라 (APIO17_koala)C++14
47 / 100
144 ms876 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define pll pair<ll,ll> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define all(vr) vr.begin(),vr.end() #define vi vector<int> #define vll vector<ll> #include "koala.h" int B[100],R[100]; 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. B[0]=1; playRound(B,R); int res; for (int i=0;i<N;i++) if (R[i]<=B[i]) res=i; return res; } 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. vi vt; for (int i=0;i<N;i++) vt.eb(i); while (vt.size()>1) { for (int i=0;i<N;i++) B[i]=0; int val=W/vt.size(); val=min(val,11); for (int x : vt) B[x]=val; playRound(B,R); vt.clear(); for (int i=0;i<N;i++) if (R[i]>val) vt.eb(i); } return vt[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. int val[7]={1,2,3,4,5,6,8}; int l=0,r=6,res=2; while (l<=r) { int mid=(l+r)/2; B[0]=B[1]=val[mid]; playRound(B,R); int cnt=0; for (int i=0;i<=1;i++) if (R[i]>val[mid]) res=i,cnt++; if (cnt==1) break; if (cnt==2) l=mid+1; else r=mid-1; } return res; } int p[101]; bool check(int n,int c,int w,int val) { int mx=n-c; mx=mx*(mx+1)/2; if (c*val<=w) { int r=n,l=max(1,n-c-(w-c*val)); mx=max(mx,(l+r)*(r-l+1)/2); } for (int i=1;i<=min(c-1,w/val);i++) { int r=n,l=n-i+1; int tmp=(l+r)*(r-l+1)/2; int lef=w-i*val; lef=min(lef,n-c); tmp+=lef*(lef+1)/2; if (tmp>mx) return true; } return false; } void solve(int l,int r,int N,int W) { if (l==r) return; int len=r-l+1; int val=W/len; for (int i=1;i<=W/len;i++) if (check(r,r-l+1,W-(N-r),i+1)) { val=i; break; } for (int i=1;i<l;i++) B[p[i]-1]=0; for (int i=l;i<=r;i++) B[p[i]-1]=val; for (int i=r+1;i<=N;i++) B[p[i]-1]=0; playRound(B,R); vi vt1,vt2; for (int i=l;i<=r;i++) if (R[p[i]-1]<=val) vt1.eb(p[i]); else vt2.eb(p[i]); int mid=l+vt1.size()-1; for (int i=0;i<(int)vt1.size();i++) p[i+l]=vt1[i]; for (int i=0;i<(int)vt2.size();i++) p[mid+1+i]=vt2[i]; solve(l,mid,N,W); solve(mid+1,r,N,W); } 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. } for (int i=1;i<=N;i++) p[i]=i; solve(1,N,N,W); for (int i=1;i<=N;i++) P[p[i]-1]=i; } /*int main() { //freopen("ss.inp","r",stdin); ios::sync_with_stdio(false); cin.tie(0); return 0; }*/

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

koala.cpp: In function 'int minValue(int, int)':
koala.cpp:28:12: warning: 'res' may be used uninitialized in this function [-Wmaybe-uninitialized]
   28 |     return res;
      |            ^~~
#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...