P1333 瑞瑞的木棍 按照P7771 【模板】欧拉路径写的
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 250000 * 2 + 5;
map<string,int> mp;
string s1,s2;
int tot;
int din[MAXN][2];
signed main(){
int x,y;
while(cin >> s1 >> s2){
if(mp[s1] == 0){
mp[s1] = ++tot;
}
if(mp[s2] == 0){
mp[s2] = ++tot;
}
x = mp[s1];
y = mp[s2];
din[x][0]++;
din[y][1]++;
}
bool f = 1;
int cnt1 = 0;
int cnt2 = 0;
for(int i = 1;i <= tot;i++){
if(din[i][0] != din[i][1]){
f = 0;
if(din[i][0] - din[i][1] == 1) cnt1++;
else if(din[i][1] - din[i][0] == 1) cnt2++;
else return puts("Impossible"), 0;
}
}
if(f == 0 && !(cnt1 == 1 && cnt2 == 1)) return !puts("Impossible"), 0;
else return puts("Possible"), 0;
}