結果

提出番号 2102
提出者 moritaoy
言語 C++
提出日時 2018-08-04 15:16:08
問題名 (66)Cut onion
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 2ms 8416KB
2 WA 0% 2ms 8672KB
3 WA 0% 1ms 8720KB
4 WA 0% 2ms 8400KB
5 AC 100% 2ms 7808KB
6 WA 0% 2ms 7808KB
7 AC 100% 2ms 7632KB
8 WA 0% 2ms 7520KB
9 WA 0% 2ms 7760KB
10 WA 0% 2ms 7824KB
11 WA 0% 2ms 8352KB
12 WA 0% 2ms 7776KB
13 WA 0% 2ms 7648KB
14 AC 100% 2ms 8432KB
15 WA 0% 2ms 7760KB
16 WA 0% 2ms 8704KB
17 WA 0% 2ms 8352KB
18 WA 0% 2ms 8064KB
19 WA 0% 2ms 7632KB
20 WA 0% 2ms 8448KB

ソースコード

#include <bits/stdc++.h>
using namespace std;
#define lp(i,n) for(int i=0;i<n;i++)
#define fordebug int hoge;cin>>hoge;
#define DEKAI 1000000007;
int main(){
  int n,k,b;
  cin>>n>>k>>b;
  int x[16];
  lp(i,k) x[i]=b;
  int num[16];
  lp(i,k) num[i]=0;

  int aaa[16];
  lp(i,n){
    cin>>aaa[i];
  }
  sort(aaa,aaa+n);
  lp(i,n){
    int t=aaa[i];
    int endf=0;
    while(endf!=1){
      int stat=0,memos=30,memot;
      lp(i,k){
	if(x[i]>=t){
	  if(memos>num[i]){
	    memos=num[i];
	    memot=i;
	  }
	  stat=1;
	}
	if(i==k-1&&stat==1){
	x[memot]-=t;
	num[memot]++;
	endf=1;
	}
	if(i==k-1&&stat==0){
	  int ninn1,ninn2,nin1=-1,nin2=-1;
	  lp(j,k){
	    if(x[j]==0) continue;
	    if(nin1<x[j]){
	      nin2=nin1;
	      ninn2=ninn1;
	      nin1=x[j];
	      ninn1=j;
	    }
	    else if(nin2<x[j]){
	      nin2=x[j];
	      ninn2=j;
	    }
	  }
	  if(num[ninn1]<num[ninn2]) swap(ninn1,ninn2);
	  x[ninn2]+=x[ninn1];
	  num[ninn2]--;
	  num[ninn1]++;
	  x[ninn1]=0;
	}
	lp(j,k){
	  if(num[j]<0) num[j]=0;
	}
      }
       lp(j,k){
	cout<<j<<" "<<x[j]<<" "<<num[j]<<endl;
	}
    }
  }
  int ans=0;
  lp(i,k){
    ans+=max(0,num[i]-1);
  }
  cout<<ans<<endl;
  return 0;
}