Submission #1268512

#TimeUsernameProblemLanguageResultExecution timeMemory
1268512juan_alejandroTimovi (COCI18_timovi)C++20
40 / 80
1095 ms2376 KiB
#include <bits/stdc++.h>
#include <memory>
#pragma GCC optimize("O2")
#define endl '\n'
#define int long long

using namespace std;
//lo codeare desde 0 para que no me esten questionando
struct Trie{
	vector<unique_ptr<Trie>> letras;
	Trie():letras(26){}
	void insert(const string &s)
	{
		Trie* nodo=this;
		for(const auto &c:s)
		{
			int idx=c-'A';
			if(!nodo->letras[idx])
			nodo->letras[idx]=make_unique<Trie>();
			nodo=nodo->letras[idx].get();
		}
	}
	vector<char> query(const string &s)
	{
		vector<char> res;
		Trie* nodo=this;
		for(const auto &c:s)
		{
			int idx=c-'A';
			if(!nodo->letras[idx])
			nodo->letras[idx]=make_unique<Trie>();
			nodo=nodo->letras[idx].get();
		}
		for(int i=0;i<26;i++)
		if(nodo->letras[i])
		res.push_back(i+'A');
		return res;
	}
};
int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cout.precision(0);
    cout<<fixed;
    //3 2 7
    //equipos,distribucion,niños
    int n,k,m;
    cin>>n>>k>>m;
    bool al=true;
    vector<int> x(n,0);
    for(int i=0;m>0;i+=(al?1:-1))
    {
    	if(m>k)
    		{
    			x[i]+=k;
    	    	m-=k;
    		}else
    		{
    			x[i]+=m;
    			m=0;
    			break;
    		}
    	if(i==n-1)
    	al=false;
    	if(i==0)
    	al=true;
    	
    }
    for(int i=0;i<n;i++)
    cout<<x[i]<<" ";
    cout<<endl;
    /*int v=m/(k*n),c=v*(k*n); descartado para raspar y porque pense que el orden era ej n=3 1 2 3 3 2 1 pero no :'( al menos si fuera eso me diera AC
    m-=c;
    //cout<<v<<" "<<m<<endl;
    vector<int> x(n);
    for(int i=0;i<n;i++)
    x[i]=v*k;
    //0 izq a derecha ,1 derecha a izq
    bool pos=((c&1)?1:0);
    if(pos)
    {
    	for(int i=n-1;i>=0;i--)
    	{
    		if(m>k)
    		{
    			x[i]+=k;
    	    	m-=k;
    		}else
    		{
    			x[i]+=m;
    			m=0;
    			break;
    		}
    	}
    }else
    {
    	for(int i=0;i<n;i++)
    	{
    		if(m>k)
    		{
    			x[i]+=k;
    	    	m-=k;
    		}else
    		{
    			x[i]+=m;
    			m=0;
    			break;
    		}
    	}
    }
    for(int i=0;i<n;i++)
    cout<<x[i]<<" ";
    cout<<endl;
    */
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...