View difference between Paste ID: 6sqUaENL and u3PAy1Kg
SHOW: | | - or go back to the newest paste.
1
#pragma comment(linker, "/STACK:268435456")
2
#include <iostream>
3
#include <sstream>
4
#include <stdio.h>
5
#include <stdlib.h>
6
#include <string>
7
#include <algorithm>
8
#include <vector>
9
#include <math.h>
10
#include <set>
11
#include <map>
12
#include <queue>
13
#include <iomanip>
14
#include <assert.h>
15
#include <stack>
16
#include <deque>
17
#include <limits.h>
18
#include <memory.h>
19
#include <ctime>
20
//#include <unordered_map>
21
//#include <unordered_set>
22
using namespace std;
23
 
24
void prepare(string q) {
25
#ifdef _DEBUG
26-
	//system("color F0");
26+
        //system("color F0");
27-
	freopen("input.txt","r",stdin);
27+
        freopen("input.txt","r",stdin);
28-
	//freopen("output.txt","w",stdout);
28+
        //freopen("output.txt","w",stdout);
29
#else
30-
	if (q.size()!=0)
30+
        if (q.size()!=0)
31-
	{
31+
        {
32-
		freopen((q+".in").c_str(),"r",stdin);
32+
                freopen((q+".in").c_str(),"r",stdin);
33-
		freopen((q+".out").c_str(),"w",stdout);
33+
                freopen((q+".out").c_str(),"w",stdout);
34-
	}
34+
        }
35
#endif
36-
	cin.sync_with_stdio(false);
36+
        cin.sync_with_stdio(false);
37-
	cout.sync_with_stdio(false);
37+
        cout.sync_with_stdio(false);
38-
	cin.tie(false);
38+
        cin.tie(false);
39
}
40
 
41
const int SZ = 50;
42
 
43
#define ppb push_back
44
#define sz(a) (int)a.size()
45
#define mp make_pair
46
#define all(a) a.begin(), a.end()
47
 
48
void solve()
49
{
50-
	string s;
50+
        string s;
51-
	cin>>s;
51+
        cin>>s;
52-
	vector <bool> v(255,false);
52+
        vector <bool> v(255,false);
53-
	vector <bool> c(255,false);
53+
        vector <bool> c(255,false);
54-
	v['A']=true;
54+
        v['A']=true;
55-
	v['E']=true;
55+
        v['E']=true;
56-
	v['I']=true;
56+
        v['I']=true;
57-
	v['O']=true;
57+
        v['O']=true;
58-
	v['U']=true;
58+
        v['U']=true;
59-
	bool nice=false, ugly=false,ugly1=false;
59+
        bool nice=false, ugly=false,ugly1=false;
60-
	bool ki=false;
60+
        bool ki=false;
61-
	int gl=0,sgl=0;
61+
        int gl=0,sgl=0;
62-
	//UGLY	
62+
        //UGLY 
63-
	//gl
63+
        //gl
64-
	for (int i=0; i<s.size(); ++i)
64+
        for (int i=0; i<s.size(); ++i)
65-
	{
65+
        {
66
 
67-
		if (s[i]=='?')
67+
                if (s[i]=='?')
68
                {
69-
			++gl;
69+
                        ++gl;
70-
			continue;
70+
                        continue;
71
                }
72-
		if (v[s[i]]) ++gl;
72+
                if (v[s[i]]) ++gl;
73-
		else gl=0;
73+
                else gl=0;
74-
		if (gl>=3) 
74+
                if (gl>=3)
75-
			ugly=true;
75+
                        ugly=true;
76-
	}
76+
        }
77-
	//sgl
77+
        //sgl
78-
	for (int i=0; i<s.size(); ++i)
78+
        for (int i=0; i<s.size(); ++i)
79-
	{
79+
        {
80-
		if (s[i]=='?')
80+
                if (s[i]=='?')
81
                {
82-
			++sgl;
82+
                        ++sgl;
83-
			continue;
83+
                        continue;
84
                }
85-
		if (!v[s[i]]) ++sgl;
85+
                if (!v[s[i]]) ++sgl;
86-
		else sgl=0;
86+
                else sgl=0;
87-
		if (sgl>=5) 
87+
                if (sgl>=5)
88-
			ugly=true;
88+
                        ugly=true;
89-
	}
89+
        }
90-
	//nothing
90+
        //nothing
91-
	gl=sgl=0;
91+
        gl=sgl=0;
92-
	for (int i=0; i<s.size(); ++i)
92+
        for (int i=0; i<s.size(); ++i)
93-
	{
93+
        {
94-
		if (s[i]=='?')
94+
                if (s[i]=='?')
95
                {
96-
			continue;
96+
                        continue;
97
                }
98-
		if (!v[s[i]]) 
98+
                if (!v[s[i]])
99
                {
100-
			gl=0;
100+
                        gl=0;
101-
			++sgl;
101+
                        ++sgl;
102
                }
103-
		else 
103+
                else
104
                {
105-
			sgl=0;
105+
                        sgl=0;
106-
			++gl;
106+
                        ++gl;
107
                }
108-
		if (gl>=3 || sgl>=5) 
108+
                if (gl>=3 || sgl>=5)
109-
			ugly1=true;
109+
                        ugly1=true;
110-
	}
110+
        }
111
 
112-
	//NICE
112+
        //NICE
113
		sgl=gl=0;
114
		for (int i=0; i<s.size(); ++i)
115
		{
116
			if (s[i]=='?')
117
			{
118
				if (gl==2)
119
				{
120-
	prepare("");
120+
					sgl=1;
121-
	solve();
121+
					gl=0;
122-
	return 0;
122+
					continue;
123
				}
124
				if (sgl==4)
125
				{
126
					gl=1;
127
					sgl=0;
128
					continue;
129
				}
130
				int g=0,c=0;
131
				for (int j=i+1; j<s.size(); ++j)
132
				{
133
					if (s[i]=='?') break;
134
					if (v[s[i]]) ++g;
135
					else break;
136
				}
137
				for (int j=i+1; j<s.size(); ++j)
138
				{
139
					if (s[i]=='?') break;
140
					if (!v[s[i]]) ++c;
141
					else break;
142
				}
143
144
			}
145
			if (v[s[i]]) 
146
			{
147
				++gl;
148
				sgl=0;
149
			}
150
			else 
151
			{
152
				++sgl;
153
				gl=0;
154
			}
155
		}
156
 
157
 
158
}
159
 
160
int main()
161
{
162
        prepare("");
163
        solve();
164
        return 0;
165
}