Cod sursa(job #2423277)

Utilizator AdrianNeataNeata Adrian AdrianNeata Data 20 mai 2019 23:09:04
Problema Taramul Nicaieri Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#include <stdlib.h>
	
#define MAXN 109

int main(){

	int i, j, N, v[MAXN][2], edges = 0, last = 0;
	freopen("harta.in", "r", stdin);   
    	freopen("harta.out", "w", stdout);   
	scanf("%d", &N);
	for(i = 1; i <= N; i++){
		scanf("%d %d", &v[i][0], &v[i][1]);
		edges += v[i][0];
		if(v[i][0] != 0 && v[i][1] != 0){
			last = i;
		}
	}
	printf("%d\n", edges);
	for(i = 1; i <= N; i++){
		for(j = 1; j <= N; j++){
			if(i != j){
				if(v[i][0] == 0){
					break;
				}
				if(v[j][1] != 0){
					if(edges == 2 && j != last){
						printf("%d %d\n", i, last);
						printf("%d %d\n", last, j);
						v[i][0]--;
						v[last][0]--;
						v[last][1]--;
						v[j][1]--;
						edges -= 2;
					} else{
						printf("%d %d\n", i, j);
						v[j][1]--;
						v[i][0]--;
						edges--;
					}
				}
			}
		}
	}
	return 0;
}