#include<bits/stdc++.h>
using namespace std;
int x, cnt;
int main() {
while(cin >> x && ++cnt) {
if(x == 250) {
cout << cnt;
return 0;
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int y, m, d;
int main() {
scanf("%d-%d-%d", &m, &d, &y);
printf("%04d-%02d-%02d", y, m, d);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n, x, hh, mm, cnt_p, cnt_t;
char c, f;
unordered_map<int,pair<int, int>> mp;
int main() {
cin >> n;
for(int i = 0; i < n;) {
scanf("%d %c %d:%d", &x, &c, &hh, &mm);
if(!x) {
++i;
if(cnt_p == 0) cout << "0 0\n";
else printf("%d %d\n", cnt_p, (int)(((double)cnt_t / cnt_p) + 0.5));
cnt_p = cnt_t = 0;
mp.clear();
} else {
if(c == 'S') {
mp[x] = {hh, mm};
} else if(c == 'E') {
if(mp.count(x)) {
++cnt_p, cnt_t += (hh - mp[x].first) * 60 + mm - mp[x].second;
mp.erase(x);
}
}
}
}
return 0;
}
}
#include<bits/stdc++.h>
using namespace std;
int k, cnt;
string s;
unordered_map<string, string> mp{
{"ChuiZi", "Bu"}, {"JianDao", "ChuiZi"}, {"Bu", "JianDao"}
};
int main() {
cin >> k;
while(cin >> s && mp.count(s) && ++cnt) {
if(cnt % (k + 1)) cout << mp[s] << endl;
else cout << s << endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
string s;
int main() {
cin >> s;
cout << "Hello " << s;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int cnt = 1, mod = 1, x;
int main() {
cin >> x;
while(mod < x) {
mod = mod * 10 + 1, ++cnt;
}
while(mod % x) {
cout << mod / x;
mod %= x, mod = mod * 10 + 1, ++cnt;
}
cout << mod / x << " " << cnt;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n, h, m;
string s;
int main() {
cin >> n;
while(n--) {
cin >> s >> h >> m;
if(h < 15 || h > 20 || m < 50 || m > 70) {
cout << s << endl;
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[505][505], b[505][505], c[505][505];
int ra, ca, rb, cb;
int main() {
cin >> ra >> ca;
for(int i = 0; i < ra; ++i) {
for(int j = 0; j < ca; ++j) {
cin >> a[i][j];
}
}
cin >> rb >> cb;
for(int i = 0; i < rb; ++i) {
for(int j = 0; j < cb; ++j) {
cin >> b[i][j];
}
}
if(ca != rb) {
printf("Error: %d != %d", ca, rb);
} else {
cout << ra << " " << cb << endl;
for(int i = 0; i < ra; ++i) {
for(int j = 0; j < cb; ++j) {
int cnt = 0;
for(int k = 0; k < ca; ++k) {
cnt += a[i][k] * b[k][j];
}
if(j) cout << " ";
cout << cnt;
}
cout << endl;
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n, k, x;
set<int> st[105];
struct P{
string name;
double cnt, avg;
}p[105];
int main() {
cin >> n;
for(int i = 0; i < n; ++i) {
cin >> p[i].name >> k;
for(int j = 0; j < k; ++j) {
cin >> x;
st[i].insert(x);
}
p[i].cnt = st[i].size(), p[i].avg = (double)st[i].size() / k;
}
sort(p ,p + n, [](P A, P B){
return A.cnt > B.cnt || A.cnt == B.cnt && A.avg > B.avg;
});
if(n < 3) {
for(int i = 2; i > n - 1;--i) {
p[i].name = "-";
}
}
cout << p[0].name;
for(int i = 1; i < 3; ++i) {
cout << ' ' << p[i].name;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, cnt;
struct node{
string address, nxt;
int data;
}p[N], q;
string now;
unordered_map<string, pair<int, string>> mp;
int main() {
cin >> now >> n;
for(int i = 0; i < n; ++i) {
cin >> q.address >> q.data >> q.nxt;
mp[q.address] = {q.data, q.nxt};
}
while(now != "-1") {
p[cnt].address = now, p[cnt++].data = mp[now].first, now = mp[now].second;
}
for(int l = 0, r = cnt - 1; l <= r; ++l, --r) {
if(l != r) cout << p[r].address << ' ' << p[r].data << ' ' << p[l].address << endl << p[l].address << ' ' << p[l].data << ' ' << (l + 1 == r ? "-1" : p[r - 1].address) << endl;
else cout << p[l].address << ' ' << p[l].data << " -1";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n, e, k, u, v;
int a[505];
bool vis[505];
vector<int> connect[505];
bool bfs(int x) {
queue<int> Q;
Q.push(x);
while(!Q.empty()) {
x = Q.front(), Q.pop();
if(vis[x]) continue;
vis[x] = true;
for(int i = 0; i < connect[x].size(); ++i) {
if(a[connect[x][i]] == a[x]) return false;
Q.push(connect[x][i]);
}
}
return true;
}
int main() {
cin >> n >> e >> k;
while(e--) {
cin >> u >> v;
connect[u].push_back(v), connect[v].push_back(u);
}
cin >> e;
while(e--) {
set<int> st;
for(int i = 1; i <= n; ++i) {
cin >> a[i], st.insert(a[i]);
}
if(st.size() != k) {
cout << "No" << endl;
continue;
}
memset(vis, false, sizeof(vis));
for(int i = 1; i <= n; ++i) {
if(!vis[i] && !bfs(i)) {
cout << "No" << endl;
goto here;
}
}
cout << "Yes" << endl;
here:;}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 5;
int n, k, x, cnt, p;
int f[N];
set<int> st;
int find(int x) {
return x == f[x] ? x : f[x] = find(f[x]);
}
int main() {
cin >> n;
for(int i = 0; i < N; ++i) {
f[i] = i;
}
for(int i = 0; i < n; ++i) {
cin >> k >> p;
bool flag = true;
st.insert(p);
for(int j = 1; j < k; ++j) {
cin >> x, st.insert(x);
if(find(x) != find(p)) {
f[find(x)] = find(p);
}
}
}
for(auto& x : st) {
if(find(x) == x) ++cnt;
}
cout << st.size() << ' ' << cnt << endl;
cin >> n;
while(n--) {
cin >> p >> x;
cout << (find(x) == find(p) ? "Y\n" : "N\n");
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct Node {
int father = -1, val, layer, l_child = -1, r_child = -1;
} node[105];
unordered_map<int, int> mp;
int n, x, a, b, cnt;
string s;
void insert(int x, int root) {
if(x < node[root].val) {
if(node[root].l_child == -1) {
node[root].l_child = cnt;
node[cnt].val = x, node[cnt].father = root, node[cnt].layer = node[root].layer + 1;
mp[x] = cnt++;
} else {
insert(x, node[root].l_child);
}
} else {
if(node[root].r_child == -1) {
node[root].r_child = cnt;
node[cnt].val = x, node[cnt].father = root, node[cnt].layer = node[root].layer + 1;
mp[x] = cnt++;
} else {
insert(x, node[root].r_child);
}
}
}
void print(bool check) {
cout << (check ? "Yes\n" : "No\n");
}
int main() {
cin >> n >> x;
node[cnt].val = x, node[cnt].layer = 1, mp[x] = cnt++;
for(int i = 1; i < n; ++i) {
cin >> x;
insert(x, 0);
}
cin >> n;
while(n--) {
cin >> a >> s;
if(s == "is") {
cin >> s >> s;
if(s == "root") {
print(node[0].val == a);
} else if (s == "parent") {
cin >> s >> b;
if(!mp.count(b)) print(false);
else print(node[node[mp[b]].father].val == a);
} else if (s == "left") {
cin >> s >> s >> b;
if(!mp.count(b) || node[mp[b]].l_child == -1) print(false);
else print(node[node[mp[b]].l_child].val == a);
} else if(s == "right"){
cin >> s >> s >> b;
if(!mp.count(b) || node[mp[b]].r_child == -1) print(false);
else print(node[node[mp[b]].r_child].val == a);
}
} else if(s == "and") {
cin >> b >> s >> s;
if(s == "siblings") {
if(!mp.count(b) || !mp.count(a)) {
print(false);
} else {
print(node[mp[b]].father == node[mp[a]].father);
}
} else {
cin >> s >> s >> s;
if(!mp.count(a) || !mp.count(b)) print(false);
else print(node[mp[a]].layer == node[mp[b]].layer);
}
}
}
return 0;
}