Para este problema, basta simularmos todas as transações, lembrando de arrumar os valores iniciais de acordo com os indicados pela entrada e, ao final, ver se todos os bancos estão no azul. Se algum banco possui saldo negativo ao final de todas as operações, então não é possível liquidar todas as debêntures sem a intervenção do Banco Central.
#include<stdio.h>intmain(){int saldos[21];int B, N, devedor, credor, valor, possivel;while(scanf("%d%d",&B,&N)){if(!B &&!N) break;for(int i =1; i <= B; ++i){scanf("%d",&saldos[i]); }for(int i =0; i < N; ++i){scanf("%d%d%d",&devedor,&credor,&valor); saldos[devedor] -= valor; saldos[credor] += valor; } possivel =1;for(int i =1; i <= B; ++i){if(saldos[i] <0){ possivel =0;break; } }printf("%c\n", possivel ?'S':'N'); }return0;}
#include<iostream>usingnamespace std;intmain(){bool possivel;intsaldos[21];int B, N, devedor, credor, valor;while(cin >> B >> N){if(!B &&!N) break;for(int i =1; i <= B; ++i){ cin >>saldos[i]; }for(int i =0; i < N; ++i){ cin >> devedor >> credor >> valor;saldos[devedor] -= valor;saldos[credor] += valor; } possivel =true;for(int i =1; i <= B; ++i){if(saldos[i] <0){ possivel =false;break; } } cout << (char) (possivel ?'S':'N') << endl; }return0;}
var input =require('fs').readFileSync('/dev/stdin','utf8');var lines =input.trim().split('\n');lines.pop();while(lines.length){let [B, N] =lines.shift().trim().split(' ').map((x) =>parseInt(x));let saldos =lines.shift().trim().split(' ').map((x) =>parseInt(x));saldos.unshift(0);for(let i =0; i <N; ++i){let [devedor, credor, valor] =lines.shift().trim().split(' ').map((x) =>parseInt(x)); saldos[devedor] -= valor; saldos[credor] += valor; }let possivel =saldos.every((x) => x >=0);console.log(`${possivel ?'S':'N'}`);}
whileTrue:try: B, N = [int(x)for x ininput().strip().split(' ')] saldos = [int(x)for x ininput().strip().split(' ')] saldos.insert(0, 0)for _ inrange(N): devedor, credor, valor = [int(x)for x ininput().strip().split(' ')] saldos[devedor]-= valor saldos[credor]+= valor possivel =Truefor saldo in saldos:if(saldo <0): possivel =Falsebreakprint('S'if possivel else'N')exceptEOFError:break