A
#include<bits/stdc++.h>
using namespace std;
int a[10000000], b[1000];
int main()
{
a[1] = 1;
a[2] = 2;
for(int i = 3; i <= 20; i++)
a[i] = a[i - 1] + a[i - 2];
for(int i = 1; i <= 1000; i++)
b[a[i]] = 1;
int n;
cin >> n;
for(int i = 1; i <= n; i++)
{
if(b[i])
cout << "O";
else
cout << "o";
}
}
B
#include<bits/stdc++.h>
using namespace std;
struct node
{
char na[25];
int a, b, c, d;
} x[1005], y[1005];
int main()
{
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++)
scanf("%s %d.%d.%d.%d", x[i].na, &x[i].a, &x[i].b, &x[i].c, &x[i].d);
for(int i = 0; i < m; i++)
scanf("%s %d.%d.%d.%d;", y[i].na, &y[i].a, &y[i].b, &y[i].c, &y[i].d);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
if(y[i].a == x[j].a && y[i].b == x[j].b && y[i].c == x[j].c && y[i].d == x[j].d)
printf("%s %d.%d.%d.%d; #%s\n", y[i].na, y[i].a, y[i].b, y[i].c, y[i].d, x[j].na);
}
C
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin >> s;
int ans = 0;
for(int i = 0; i < s.length(); i++)
{
int n = 0, q = 0;
for(int j = i; j < s.length(); j++)
{
if(s[j] == '(')
n++;
else if(s[j] == ')')
n--;
else
{
n--;
q++;
}
if(n < 0 && !q)
break;
if(n < 0 && q)
{
n += 2;
q--;
}
if(n == 0)
ans++;
}
}
cout << ans;
return 0;
}