답안 #28308

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
28308 2017-07-16T04:35:40 Z xhae(#1187, xhae) Play Onwards (FXCUP2_onward) C++14
0 / 1
26 ms 2020 KB
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(void) {
	int n, m;
	cin >> n >> m;
	string str[300];
	for(int i = 0; i < n; i++) cin >> str[i];
	vector<int> a, b, ans(n, 0);
	a.push_back(0);
	ans[0] = 1;
	for(int i = 1; i < n; i++) {
		bool isValid = true;
		for(int j = 0; j <= (int)str[i].size() - m; j++) {
			string sub = str[i].substr(j, m);
			for(int ind: a) {
				for(int k = 0; k <= (int)str[ind].size() - m; k++) {
					if(str[ind].substr(k, m) == sub) {
						isValid = false;
						break;
					}
				}
				if(!isValid) break;
			}
			if(!isValid) break;
		}
		if(isValid) { a.push_back(i); ans[i] = 1; }
		else { b.push_back(i); ans[i] = 2; }
	}

	if(b.size() == 0) { a.pop_back(); b.push_back(n - 1); ans[n - 1] = 2; }

	bool isValid = true;
	for(int i = 0; i < b.size() && isValid; i++) {
		for(int j = 0; j <= (int)str[b[i]].size() - m && isValid; j++) {
			string sub = str[b[i]].substr(j, m);
			for(int k = i + 1; k < b.size() && isValid; k++) {
				for(int q = 0; q <= str[b[k]].size() - m && isValid; q++) {
					if(str[b[k]].substr(q, m) == sub) 
						isValid = false;
				}
			}
		}
	}

	if(isValid) {
		cout << "Yes\n";
		for(int v: ans) cout << v << "\n";
	} else cout << "No\n";

	return 0;
}

Compilation message

onward.cpp: In function 'int main()':
onward.cpp:37:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < b.size() && isValid; i++) {
                   ^
onward.cpp:40:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int k = i + 1; k < b.size() && isValid; k++) {
                         ^
onward.cpp:41:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int q = 0; q <= str[b[k]].size() - m && isValid; q++) {
                      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 2020 KB Output is correct
2 Correct 0 ms 2020 KB Output is correct
3 Correct 0 ms 2020 KB Output is correct
4 Correct 0 ms 2020 KB Output is correct
5 Correct 0 ms 2020 KB Output is correct
6 Correct 0 ms 2020 KB Output is correct
7 Correct 26 ms 2020 KB Output is correct
8 Correct 23 ms 2020 KB Output is correct
9 Incorrect 23 ms 2020 KB Output isn't correct
10 Halted 0 ms 0 KB -