| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
一遍通过,附代码。//============================================================================
// Name : main1029.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
class weight{
public:
int num;
int* left;
int* right;
int bal;//-1: zuo<you 0: zuo==you 1: zuo>you
void gx();
/*
~weight(){
delete [] left;
delete [] right;
}
*/
};
int B(char c){
if(c == '=') return 0;
if(c == '<') return -1;
if(c == '>') return 1;
return 0;
}
int state[1000] = {0};//零表示有可能为假币。
int Num, wnum;
void weight::gx(){
switch(bal){
case 0:
for(int i = 0; i < num; i++){
state[left[i]-1] = 1;
state[right[i]-1] = 1;
}
break;
case -1:
case 1:
int* temp = new int[Num];
for(int i = 0; i < Num; i++)temp[i] = 0;
for(int i = 0; i < num; i++){
temp[left[i]-1] = 1;
temp[right[i]-1] = 1;
}
for(int i = 0; i < Num; i++){
if(temp[i] == 0) state[i] = 1;
}
delete [] temp;
}
}
int main() {
weight ws[100];
cin >> Num >> wnum;
for(int i = 0; i < wnum; i++){
cin >> ws[i].num;
ws[i].left = new int[ws[i].num];
ws[i].right = new int[ws[i].num];
for(int j = 0; j < ws[i].num; j++){
cin >> ws[i].left[j];
}
for(int j = 0; j < ws[i].num; j++){
cin >> ws[i].right[j];
}
char c;
cin >> c;
ws[i].bal = B(c);
ws[i].gx();
}
int jia = -1;
bool only = true;
for(int i = 0; i < Num; i++){
if(state[i] != 0) continue;
int bl = 0;
int j;
for(j = 0; j < wnum; j++){
if(ws[j].bal == 0) continue;
bool inL = false, inR = false;
for(int k = 0; k < ws[j].num; k++){
if(i == ws[j].left[k] - 1){
inL = true;
break;
}
if(i == ws[j].right[k] - 1){
inR = true;
break;
}
}
int tempBl;
if(inL) tempBl = ws[j].bal;
if(inR) tempBl = -ws[j].bal;
if(bl != 0 && tempBl != bl) break;
bl = tempBl;
}
if(j != wnum) continue;
int tempJia = i;
if(jia != -1 && tempJia != jia){
only = false;
break;
}
jia = tempJia;
}
if(!only || jia == -1){
cout << 0 << endl;
}
else{
cout << (jia+1) << endl;
}
//cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator