답안 #28991

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
28991 2017-07-18T03:50:43 Z kdh9949 Take-out (POI13_usu) C++14
22 / 100
189 ms 27728 KB
#include <bits/stdc++.h>
using namespace std;

struct Dat{
	int *p, b, c;
};

int n, k;
char str[1000010];
stack<Dat> st, nst;

void upd(int i){
	st.top().p[st.top().b + st.top().c] = i;
	if(str[i] == 'b') st.top().b++;
	else st.top().c++;
}

void top(int i){
	int *p = new int[k + 1];
	st.push({p, 0, 0});
	upd(i);	
}

void pop(){
	nst.push(st.top());
	st.pop();
}

int main(){
	scanf("%d%d%s", &n, &k, str + 1);
	for(int i = 1; i <= n; i++){
		if(st.empty()) top(i);
		else if(str[i] == 'b'){
			if(st.top().b == k) top(i);
			else upd(i);
			if(st.top().b + st.top().c == k + 1){
				pop();
			}
		}
		else{
			if(st.top().c == 1) top(i);
			else upd(i);
			if(st.top().b + st.top().c == k + 1){
				pop();
			}	
		}
	}
	while(!nst.empty()){
		for(int i = 0; i <= k; i++) printf("%d ", nst.top().p[i]);
		puts("");
		nst.pop();
	}
}

Compilation message

usu.cpp: In function 'int main()':
usu.cpp:30:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%s", &n, &k, str + 1);
                                  ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 3000 KB Output is correct
2 Incorrect 0 ms 3000 KB Unexpected end of file - int32 expected
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 3000 KB Output is correct
2 Incorrect 0 ms 3000 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 3000 KB Output is correct
2 Incorrect 0 ms 3000 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 3000 KB Output is correct
2 Incorrect 0 ms 3000 KB Unexpected end of file - int32 expected
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 3924 KB Output is correct
2 Correct 9 ms 3392 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 33 ms 4192 KB Output is correct
2 Correct 36 ms 4040 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 26 ms 6168 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 46 ms 7224 KB Unexpected end of file - int32 expected
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 189 ms 27728 KB Output is correct
2 Correct 106 ms 6908 KB Output is correct
3 Correct 123 ms 6908 KB Output is correct
4 Incorrect 63 ms 8280 KB Unexpected end of file - int32 expected