1105 - Sub-prime
Mais um dia, mais um problema Ad Hoc...
Last updated
Mais um dia, mais um problema Ad Hoc...
Last updated
#include <stdio.h>
int main(){
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');
}
return 0;
}#include <iostream>
using namespace std;
int main(){
bool possivel;
int saldos[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;
}
return 0;
}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'}`);
}while True:
try:
B, N = [int(x) for x in input().strip().split(' ')]
saldos = [int(x) for x in input().strip().split(' ')]
saldos.insert(0, 0)
for _ in range(N):
devedor, credor, valor = [int(x) for x in input().strip().split(' ')]
saldos[devedor] -= valor
saldos[credor] += valor
possivel = True
for saldo in saldos:
if(saldo < 0):
possivel = False
break
print('S' if possivel else 'N')
except EOFError:
break