52772023-04-25 09:42:31kohumarkKígyózó szavakcpp17Futási hiba 30/10035ms64188 KiB
#include <iostream>
#include <vector>
#include <set>
#include <map>
using namespace std;

vector<vector<int>> szavak;
vector<pair<int,int>> mima;
int n, m;

void feltolt(vector<int> act, int mi, int ma){
	szavak.push_back(act);
	mima.push_back(make_pair(abs(mi)	,25-ma));
	if((int)act.size()<n) {
		int end=act[(int)act.size()-1]-1;
		act.push_back(act[(int)act.size()-1]-1);
		feltolt(act,min(mi,end),ma);
		act[(int)act.size()-1]=end+2;
		feltolt(act,mi,max(ma,end+2));
	}
}

int main(){
	cin.tie(0); ios_base::sync_with_stdio(false);
	cin >> n >> m;	//a==97 z==122
	vector<int> a; a.push_back(0);
	feltolt(a,0,0);
	int sol[m]; vector<pair<int,int>> calc; int ma=0;
	for(int i=0; i<m; i++){
		cin >> sol[i]; ma=max(ma,sol[i]);
		
	}
	int x=0; int s=0; int b=0; int db=(int)szavak.size(); // x az aktuális ssz, b a kezdobetu, s a sorszam
	while(x<ma){
		x++;
		while(true){
			if(s==db){s=0; b++;}
			if(mima[s].first<=b&&mima[s].second>=b){
				calc.push_back(make_pair(b,s)); s++;
				break;
			}
			s++;
		}
	}
	for(int i=0; i<m; i++){
		for(int j=0; j<(int)szavak[calc[sol[i]-1].second].size(); j++) cout << (char)(szavak[calc[sol[i]-1].second][j]+calc[sol[i]-1].first+97);
		cout << '\n';
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/100
1Elfogadva0/03ms2108 KiB
2Elfogadva0/03ms2400 KiB
3Elfogadva5/52ms2244 KiB
4Elfogadva5/53ms2480 KiB
5Elfogadva5/53ms2828 KiB
6Elfogadva5/53ms2828 KiB
7Elfogadva5/53ms2888 KiB
8Elfogadva5/54ms3780 KiB
9Futási hiba0/530ms64188 KiB
10Futási hiba0/535ms64152 KiB
11Futási hiba0/528ms63892 KiB
12Futási hiba0/528ms63840 KiB
13Futási hiba0/528ms63576 KiB
14Futási hiba0/632ms63336 KiB
15Futási hiba0/628ms63348 KiB
16Futási hiba0/635ms63092 KiB
17Futási hiba0/635ms63008 KiB
18Futási hiba0/735ms63008 KiB
19Futási hiba0/727ms62824 KiB
20Futási hiba0/729ms62800 KiB