Created
June 9, 2015 02:35
-
-
Save rogerioagjr/f1851f5719150a2a21e0 to your computer and use it in GitHub Desktop.
Caixinha de Palitos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Caixinha de Palitos - F1P2 - OBI 2015 | |
// Rogério Júnior | |
// Complexidade: O(m) | |
#include <cstdio> | |
#include <algorithm> | |
using namespace std; | |
int n, m; // declaro as variáveis "n" e "m" | |
long long int resp; // declaro resp como long long | |
int main(){ | |
scanf("%d %d", &n, &m); // leio os valores de "n" e "m" | |
// para cada uma das possíveis quantidades do primeiro amigo | |
for(int i=1; i<=m; i++){ | |
int resto=n-i; // vejo quantos palitos ainda sobram | |
// se for impossível dividí-los entre os dois amigos restantes | |
// dou continue e não faço mais nada nessa repetição | |
if(2*m<resto) continue; | |
// menor será a menor quantidade que o segundo amigo pode ganhar | |
int menor=max(1, resto-m); | |
// e maior será a maior quantidade | |
int maior=min(resto-1, m); | |
// como a quantidade do terceiro amigo já fica definida | |
// adiciono a "resp" a quantidade de números no intervalo (menor, maior) | |
resp+=(maior-menor+1); | |
} | |
// e por fim, imprimo o valor de "resp" seguido de quebra de linha | |
printf("%lld\n", resp); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment