CSES - Datatähti 2019 alku - Results
Submission details
Task:Leimasin
Sender:Kurns
Submission time:2018-10-01 14:03:00 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp:4:10: fatal error: stdafx.h: No such file or directory
 #include "stdafx.h"
          ^~~~~~~~~~
compilation terminated.

Code

// DT2019T2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>

using namespace std;


int main()
{
	vector<int> leikkaukset;
	string haluttu;
	string leimaisin;
	cin >> haluttu >> leimaisin;
	string nykyinen(haluttu.length(), '?');

	if (haluttu[0] != leimaisin[0] || haluttu.back() != leimaisin.back()) {
		cout << "-1" << endl;
		return 0;
	}

	leikkaukset.push_back(1);
	string alku = nykyinen.substr(0, 0);
	alku.append(leimaisin);
	string loppuosa = nykyinen.substr(0 + leimaisin.size(), haluttu.size() - alku.size());
	alku.append(loppuosa);
	nykyinen = alku;


	alku = nykyinen.substr(0, haluttu.size() - leimaisin.size());
	leikkaukset.push_back(haluttu.size() - alku.size());
	//cout << haluttu.size() - alku.size() << endl;
	alku.append(leimaisin);
	nykyinen = alku;

	//cout << nykyinen << " ALUSTUS OK" << endl;


	int done = false;
	while (!done && leikkaukset.size() <= 10*haluttu.size()) {
		for (int i = 0; i < haluttu.size(); i++) {
			if (nykyinen[i] != haluttu[i]) {
				//cout << "kohdassa " << i << " virhe" << endl;
				leikkaukset.push_back(i+1);
				string alku = nykyinen.substr(0, i);
				alku.append(leimaisin);
				loppuosa = nykyinen.substr(alku.size(), nykyinen.size());
				alku.append(loppuosa);
				//cout << alku << endl;
				nykyinen = alku;
				if (nykyinen == haluttu) {

					done = true;
					cout << leikkaukset.size() << endl;
					for (auto i : leikkaukset) {
						cout << i << " ";
					}
					int a;
					cin >> a;
					return 0;

				}
			}
		}
	}

	if (!done) {
		cout << "-1";
		return 0;
	}

	
	

	int a; 
	cin >> a;
    return 0;
}