답안 #398835

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
398835 2021-05-04T21:03:29 Z Hassan61 세 명의 친구들 (BOI14_friends) C++14
0 / 100
56 ms 6260 KB
/**
 * pair : first second
 * binary : lower_bound    upper_bound
 * strings : tolower    toupper
 * vector : push_back erase begin
 * set : insert
**/

/*
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
*/

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define un unsigned
#define MAXN 200004
ll n, a, b, r, x1, x2;
string str;
int main()
{
	//ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	cin >> n >> str;
	int sSize = n / 2 + 1;
	string s1(sSize, 'a'), s2(sSize,'a'), s3(sSize-1, 'a');
	int j = 0;
	for (int i = 0; i <= n/2; i++)
	{
		s1[j] = str[i];
		j++;
	}
	j = 0;
	for (int i = n/2; i < n; i++)
	{
		s2[j] = str[i];
		j++;
	}
	x1 = x2 = r = 0;
	for (int i = 0; i <= n / 2; i++)
	{
		if (s1[i+x1]==s2[i+x2]) {
			r++;
			//cout << s1[i + x1] << " " << s2[i + x2] << "\n";

		}
		else if (i!= n / 2) {
			if (x1 + x2 == 0 && s1[i + 1] == s2[i]) {
				x1 = 1;
				r++;
				//cout << s1[i + x1] << " " << s2[i + x2] << "\n";

			}
			else if (x1 + x2 == 0 && s1[i] == s2[i + 1]) {
				x2 = 1;
				r++;
				//cout << s1[i + x1] << " " << s2[i + x2] << "\n";

			}
			else if (s1[i + 1] == s2[i + 1]) {
				x1 = x2 = 1;
				r++;
				//cout << s1[i + x1] << " " << s2[i + x2] << "\n";

			}
		}
		

		if(i< n / 2)s3[i] = s1[i + x1];
		if (x1 + x2 > 0 && i == n / 2-1)break;

	}

	if (r == sSize) {
		cout << "NOT UNIQUE";

	}
	else if (r + 1 == sSize) {
		
		cout << s3;

	}
	else {
		cout << "NOT POSSIBLE";
	}
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 208 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 204 KB Output is correct
13 Correct 1 ms 204 KB Output is correct
14 Correct 1 ms 204 KB Output is correct
15 Correct 1 ms 204 KB Output is correct
16 Correct 1 ms 208 KB Output is correct
17 Incorrect 1 ms 204 KB Output isn't correct
18 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 55 ms 6128 KB Output is correct
2 Correct 56 ms 6088 KB Output is correct
3 Correct 55 ms 6180 KB Output is correct
4 Correct 55 ms 6148 KB Output is correct
5 Correct 56 ms 6260 KB Output is correct
6 Incorrect 56 ms 6076 KB Output isn't correct
7 Halted 0 ms 0 KB -