_ACM题_本机运行没错_提交一直WA

求助_ACM题_本机运行没错_提交一直WA
各位大侠,帮忙看一下哪出错了
题目是:
题目描述:

  一个复数(x+iy)集合,两种操作作用在该集合上:

  1、Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出 empty ,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE;

  2 Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE;

  最开始要读入一个int n,表示接下来的n行每一行都是一条命令。

输入:

  输入有多组数据。
  每组输入一个n(1<=n<=1000),然后再输入n条指令。

输出:

  根据指令输出结果。

样例输入:

  3
  Pop
  Insert 1+i2
  Pop

样例输出:

  empty
  SIZE = 1
  1+i2
  SIZE = 0

提示:

  模相等的输出b较小的复数。

  a和b都是非负数。



我的代码是:
C/C++ code

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cstdio>
using namespace std;
struct info
{
    int x;
    int y;
};
bool cmp(const info &a,const info &b)
{
    if((a.x)*(a.x)+(a.y)*(a.y)==(b.x)*(b.x)+(b.y)*(b.y)) return a.y>b.y;
    else return (a.x)*(a.x)+(a.y)*(a.y)<(b.x)*(b.x)+(b.y)*(b.y);
};
int main()
{
    string s,t;
    char q[1000];
    int n;
    vector<info> v;
    info in;
    while(cin>>n)
    {
        getchar();
        while(n--)
        {
            gets(q);
            t=q;
            if(t[0]=='I')
            {
                in.x=t[7]-'0';
                in.y=t[10]-'0';
                v.push_back(in);
                sort(v.begin(),v.end(),cmp);
                cout<<"SIZE = "<<v.size()<<endl;
            }
            else
            {
                if(v.size()==0) cout<<"empty"<<endl;
                else
                {
                    vector<info>::iterator it=v.end();
                    it--;
                     cout<<(*it).x<<"+i"<<(*it).y<<endl;
                     v.erase(it);
                     cout<<"SIZE = "<<v.size()<<endl;
                }
            }
        }
        v.clear();
    }
}



题目链接:http://ac.jobdu.com/problem.php?id=1178

九度OJ,题号1178

------解决方案--------------------
本机运行没错但提交错误,一般就是没考虑特殊情况,ACM题都这样
------解决方案--------------------
本机运行没错,你只过了题目上的几个样例吧,你多找几个样例试试
------解决方案--------------------
楼主你忽略了一个问题, a 与 b 不会只是 一位数吧。
------解决方案--------------------
楼主可以这样
C/C++ code

scanf("%s", str);
if (str[0] = 'I')
{
scanf("%d+i%d",&in.x,&in.y);
}
else
{
}