Uva Foreign Exchange map 映射

//注意每两个城市之间有两条有向边,城市可以为奇数比如说五个

//遍历map使用迭代,it->first,it->second

//啃了两个半小时,处理细节

#include
#include
#include
#include
#include
using namespace std;
map > mp;
int main(){
    int a,b,c;
    while(cin>>a&&a){
        mp.clear();
        for(int i=0;i             cin>>b>>c;
            int jud=0;
            if(mp[c].count(b)&&mp[c][b]!=0){
                mp[c][b]--;
                jud=1;
            }
            if(!mp[b].count(c))
                mp[b][c]=0;
            if(!jud) mp[b][c]++;
        }
        for(map >::iterator it=mp.begin();it!=mp.end();it++){
            map it1=it->second;
            for(map::iterator it2=it1.begin();it2!=it1.end();it2++){
                if(it2->second!=0){
                    cout<<"NO"<                     goto label;
                }
            }
        }
        cout<<"YES"<         label:;
    }
    return 0;
}

你可能感兴趣的:(Uva Foreign Exchange map 映射)