반응형
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int find_pos(vector<int> &v , int pos){
while(v[pos]==0){
pos++;
if(pos>v.size()){
pos = 1;
}
}
return pos;
}
int main() {
//freopen("input.txt.txt","rt",stdin);
// 1 2 3
// 1: 0 2 3
// 2: 0 1 3
// 3: 0 1 2
// 4: 0 0 2
// 5: 0 0 1 -> 정전
int n,i,t,pos=1,sum=0;
scanf("%d", &n);
vector<int> v(n+1);
for(i=1; i<=n;i++){
scanf("%d", &v[i]);
sum+=v[i];
}
scanf("%d",&t);
if(t>=sum){
printf("-1");
return 0;
}
while(t>0){
pos = find_pos(v, pos);
v[pos]--;
pos++;
pos = find_pos(v, pos);
//for(i=1; i<=n;i++){
// printf("%d ", v[i]);
//}
//printf("%d", pos);
//printf("\n");
t--;
}
printf("%d ",pos);
}
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int a[2001];
int main() {
//freopen("input.txt.txt","rt",stdin);
int n, k, i, p=0, cnt=0, tot=0;
scanf("%d",&n);
for(i=1; i<=n; i++){
scanf("%d", &a[i]);
tot+=a[i];
}
scanf("%d",&k);
if(k>=tot){
printf("-1\n");
return 0;
}
while(1){
p++;
if(p>n) p=1;
if(a[p]==0) continue;
a[p]--;
cnt++;
if(cnt==k) break;
}
while(1){
p++;
if(p>n) p=1;
if(a[p]!=0) break;
}
printf("%d",p);
}
반응형
'Algorithm > etc' 카테고리의 다른 글
N진수 출력 C++ (0) | 2022.01.12 |
---|---|
투포인터 활용, ugly numbers (0) | 2022.01.12 |
조세퍼스 (0) | 2022.01.09 |
이분 탐색으로 최소, 최대 적절한 답 찾아내기 (0) | 2022.01.08 |
연속된 자연수의 합 (0) | 2022.01.07 |