Omówienie zadania Race z dywizji Brown

Szczegółowe omówienie zadania Race z dywizji Brown Amerykańskiej Olimpiady Informatycznej USACO:
https://youtu.be/XQcYAuPheVM?t=5838
——-
Poniżej kod wzorcowy do zadania użyty w powyższym omówieniu.

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

int MAXZAK=100*1000;

int Wypisz(int a, int k){
	int ile, maxi;
	ile=maxi=0;
	ll odl=0LL;
	for(int i=1; i<=MAXZAK; i++){
	
		if( i<=a ){
			odl+=(ll)i;
			maxi=i;
			ile=1;
		}
		else{
			if(ile==2){
				maxi++;
				ile=1;
				odl+=maxi;
			}
			else{
				ile++;
				odl+=maxi;
			}
		}
		if( odl>=(ll)k ) return i;
	}
}

int main (){	
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
 	freopen("race.in", "r", stdin);
  	freopen("race.out", "w", stdout);
	int n, k, a;
	cin>>k>>n;
	for(int i=1; i<=n; i++){
		cin>>a;
		cout << Wypisz(a, k) << "\n";
	}
	return 0;
}
Link do pobrania pliku z kodem C++ zadania "Race"  

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz