题意:题意
直接模拟
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <list>
#include <deque>
#include <string>
#define LL long long
#define DB double
#define SI(a) scanf("%d",&a)
#define SD(a) scanf("%lf",&a)
#define SS(a) scanf("%s",a)
#define SF scanf
#define PF printf
#define MM(a,v) memset(a,v,sizeof(a))
#define REP(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
#define REPD(i,a,b) for(int (i)=(a);(i)>(b);(i)--)
#define N 65009
#define INF 0x3f3f3f3f
#define EPS 1e-8
#define bug puts("bug")
using namespace std;
int use[N];
int mk(int t)
{
REP(i,1,N)
{
if(use[i]==-1||t-use[i]>=600)
{
use[i] = t;
return i;
}
}return -1;
}
int query(int t,int b)
{
if(use[b]==-1||t-use[b]>=600) return 0;
use[b] = t;
return 1;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
int a,b;
char in[30],ch[4];
MM(use,-1);
while(gets(in))
{
sscanf(in,"%d %s %d",&a,ch,&b);
if(ch[0]=='+') PF("%d\n",mk(a));
else
{
if(query(a,b)) puts("+");
else puts("-");
}
}
return 0;
}