반응형
#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

+ Recent posts