Last active
August 29, 2015 14:22
-
-
Save rogerioagjr/6f570b92623f796ba16b to your computer and use it in GitHub Desktop.
Arquivos
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
// Arquivos - F1P1 - OBI 2015 | |
// Rogério Júnior | |
// Complexidade: O(n*log(n)) | |
#include <cstdio> // scanf e printf | |
#include <algorithm> // sort | |
using namespace std; | |
#define MAXN 100100 // defino o valor máximo de n | |
int n, b, resp, file[MAXN]; // variáveis que vou usar | |
int main(){ | |
scanf("%d %d", &n, &b); // leio os valores de "n" e "b" | |
for(int i=1; i<=n; i++) scanf("%d", &file[i]); // leio os tamanhos dos arquivos | |
sort(file+1, file+n+1); // ordeno o vetor pelo tamanho dos arquivos | |
int menor=1;; // inicializo menor e maior com os valores 1 e n, respectivamente | |
// enquanto houver arquivo disponível | |
for(int maior=n; maior>=menor; maior--){ | |
// aumento o valor de resp, pois o maior arquivo será guardado em uma nova pasta | |
resp++; | |
// se couberem dois (o maior e o menor), coloco o menor na mesma pasta | |
// e digo que o novo menor elemento será o seguinte em "file" | |
if(file[menor]+file[maior]<=b) menor++; | |
} | |
printf("%d\n", resp); // por fim, imprimo a resposta seguida de quebra de linha | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment