Cod sursa(job #3176654)

Utilizator Cazacu2006RazvanRazvan Cazacu Cazacu2006Razvan Data 27 noiembrie 2023 14:55:18
Problema Algoritmul Bellman-Ford Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("domino.in");
ofstream fout("domino.out");
int n,x,y;
struct muchie
{
    int x,ind;
    bool rev;
};
vector <muchie> v[50001];
vector <muchie> st;
vector <muchie> sol;
bool fr[50005];
int prim,nrimp;
void dfs(muchie a)
{

    int nod=a.x;
  while(!v[nod].empty())
  {
      int x=v[nod].back().x;
      int ind2=v[nod].back().ind;
      int rev2=v[nod].back().rev;
      v[nod].pop_back();
      if(fr[ind2]==0)
      {

          fr[ind2]=1;
          dfs({x,ind2,rev2});
         // break;



      }
  }
  if(a.ind!=0)
  sol.push_back({a.x,a.ind,1-a.rev});

}
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>x>>y;
        v[x].push_back({y,i,0});
        v[y].push_back({x,i,1});
    }
    for(int i=0;i<=9;i++)
    {
        if(v[i].size()%2){
            nrimp++;
            x=i;
        }
    }
    if(nrimp>2)
    {
        fout<<0;
        return 0;
    }
    fout<<1<<"\n";
    dfs({x,0,0});
    for(int i=0;i<sol.size();i++)
        fout<<sol[i].ind<<" "<<sol[i].rev<<"\n";
    return 0;
}