📄 3719263_tle.cc
字号:
#include <set>
#include <stdio.h>
#include <algorithm>
using namespace std;
set <int> s;
set <int>::iterator it;
int tmd[500001];
int num[500001];
int table[1001];
int ans[1001];
int main()
{
int t, k, n;
char str[2];
int r, g;
int cas = 1;
while (scanf("%d", &t) == 1 && t != 0)
{
for (int i = 0; i <= 1000; i++)
{
table[i] = 500000;
}
printf("Case %d:\n", cas++);
k = 1;
s.clear();
while (t-- != 0)
{
scanf("%s%d", str, &n);
if (str[0] == 'B')
{
s.insert(n);
for (int i = 1; i <= 1000; i++)
{
int tmp = n;
if (tmp >= i)
tmp %= i;
if (tmp <= table[i])
{
table[i] = tmp;
ans[i] = k;
}
}
tmd[n] = k++;
}
else
{
if (s.empty())
{
puts("-1");
continue;
}
if (n <= 1000)
{
printf("%d\n", ans[n]);
continue;
}
r = 500001;g = 0;
int tmp, t;
for (int c = 0; c <= 500000; c += n)
{
it = s.upper_bound(c);
if (it == s.end())
break;
tmp = *it;
t = tmd[tmp];
tmp %= n;
if (tmp < r || (tmp == r && t > g))
{
r = tmp;
g = t;
}
}
printf("%d\n", g);
}
}
puts("");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -