結果
| 問題 |
No.994 ばらばらコイン
|
| コンテスト | |
| ユーザー |
courange_cou
|
| 提出日時 | 2020-02-21 22:26:11 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,030 bytes |
| コンパイル時間 | 376 ms |
| コンパイル使用メモリ | 30,208 KB |
| 実行使用メモリ | 10,496 KB |
| 最終ジャッジ日時 | 2024-10-08 21:57:44 |
| 合計ジャッジ時間 | 3,714 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 3 TLE * 1 -- * 19 |
ソースコード
#include <stdio.h>
#include <stdlib.h>
int com_asc_int(const void *n1,const void *n2){
if(*(int*)n1 > *(int*)n2)return 1;
else if(*(int*)n1 < *(int*)n2)return -1;
else return 0;
}
int main(){
int n,coin;scanf("%d %d",&n,&coin);
if(coin > n){
printf("%d",-1);
return 0;
}
int a[100000],b[100000];for(int i = 0;i < n-1;i++)scanf("%d %d",&a[i],&b[i]);
int ans;
int count[100000];
qsort(a,n,sizeof(int),com_asc_int);
for(int i = 0;i < n;i++){
for(int j = i;j < n;j++){
if(i+1 == a[j])count[i]++;
}
}
//for(int i = 0;i < n;i++)
// printf("count[%d] = %d\n",i+1,count[i]);
coin--;
for(int i = 0;i < n;i++){
//printf("rp:%d\n",i);
//printf("%d:coin = %d,count[i] = %d\n",i,coin,count[i]);
if(coin <= 0)break;
if(coin >= count[i]){
ans += count[i];
//printf("%d:coin - count[i] = %d - %d\n",i,coin,count[i]);
coin -= count[i];
}else {
ans += coin;
}
}
printf("%d",ans);
}
courange_cou