首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

poj1029为什么迟迟过不去,网下的给的几组易错的测试用例都过了

2012-09-10 
poj1029为什么迟迟过不去,网上的给的几组易错的测试用例都过了啊#include iostream#include stdlib.hu

poj1029为什么迟迟过不去,网上的给的几组易错的测试用例都过了啊
#include <iostream>
#include <stdlib.h>
using namespace std;

int flag[1005];
int main()
{
  int n,k;
  cin>>n>>k;
  int i,j,p;
   
  int left[505];
  int right[505];
  char c[3];
  for(i=0;i<k;i++)
  {
  cin>>p;
  for(j=0;j<p;j++)
  {
  cin>>left[j];
  }
  for(j=0;j<p;j++)
  {
  cin>>right[j];
  }
  cin>>c;
  if(c[0]=='=')
  {
  for(j=0;j<p;j++)
  {
  flag[left[j]]=100;
  }
  for(j=0;j<p;j++)
  {
  flag[right[j]]=100;
  }

  }
  if(c[0]=='>')
  {
  for(j=0;j<p;j++)
  {
  if(flag[left[j]]!=100)
  {
  flag[left[j]]++;
  }
  }
  for(j=0;j<p;j++)
  {
  if(flag[right[j]]!=100)
  {
  flag[right[j]]--;
  }
  }
  }
  if(c[0]=='<')
  {
  for(j=0;j<p;j++)
  {
  if(flag[left[j]]!=100)
  {
  flag[left[j]]--;
  }
  }
  for(j=0;j<p;j++)
  {
  if(flag[right[j]]!=100)
  {
  flag[right[j]]++;
  }
  }
  }
  }
  int max=-1;
  int ans;
  int mount=1;
  /*for(i=1;i<=n;i++)
  {
  cout<<flag[i]<<endl;
  }*/
  for(i=1;i<=n;i++)
  {
  if(flag[i]!=100 && abs(flag[i])>=max)
  {
  if(abs(flag[i])>max)
  {
  max=abs(flag[i]);
  ans=i;
  mount=1;
  }
  else if(abs(flag[i])==max)
  {
  mount++;
  }
  }

  }
  if(mount==1) cout<<ans<<endl;
  else cout<<0<<endl;
  //cout<<ans<<endl;
  return 0;
}
还请大神们多多指教

[解决办法]
我说100够用么。比如这个数据,用101个coin,第一个大于其他任何一个。

热点排行