Cod sursa(job #2423273)

Utilizator AdrianNeataNeata Adrian AdrianNeata Data 20 mai 2019 23:05:41
Problema Taramul Nicaieri Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.76 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);
						i = N + 1;
						edges = 0;
						break;
					}
					printf("%d %d\n", i, j);
					v[j][1]--;
					v[i][0]--;
					edges--;
				}
			}
		}
	}
	return 0;
}