Rezultati

Up. imeNalogaJezikRezultatČas oddaje
pokosimo-2019 Revolver C++ 0/100Napačen odgovor (WA) 09. maj '19 @ 19:11

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 0/14 3,168 MiB 0,000 s Napačen odgovor
#2 [več] 0/14 3,168 MiB 0,000 s Napačen odgovor
#3 [več] 0/14 3,250 MiB 0,000 s Napačen odgovor
#4 [več] 0/14 3,258 MiB 0,000 s Napačen odgovor
#5 [več] 0/14 3,258 MiB 0,000 s Napačen odgovor
#6 [več] 0/15 3,250 MiB 0,000 s Napačen odgovor
#7 [več] 0/15 3,168 MiB 0,000 s Napačen odgovor

Ocenjevani program (revolver.cpp):
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <stdio.h>

using namespace std;

int pike(string s, int i) {
	int res = 0;
	while(i < s.length() && s[i] == '.') {
		i++;
		res++;
	}
	return res;	
}

int main() {
	int t;
	cin >> t;
	for(int as=0; as<t; ++as) {
		int n, p;
		cin >> n >> p;
		cin.ignore();
		string s;
		getline(cin, s);
		vector<int> podzap(105, 0);
		int i=0;
		while(i < s.length()) {
			int res = pike(s, i);
			int zadnjepike = 0;
			if(i + res >= s.length()) break;
			if(i==0) {
				int j = s.length()-1;
				while(j>=0 && s[j] == '.'){
					j--;
					zadnjepike++;
				}
			}
			int dolzina = zadnjepike + res;
			//cout << dolzina << endl;
			for(int j=1; j<=dolzina; ++j) {
				podzap[j] += dolzina - j + 1;
			}
			i = i+res;
			while(i <s.length() && s[i] == '*') i++;
		}
		/*for(int i=0; i<10; ++i) {
			cout << i << ": " << podzap[i] << endl;
		}
		cout << endl << endl;*/
		double out = podzap[1] / (double)n;
		int k = 1;
		vector<string> output;
		for(i=0; i<p-1; ++i) {
			if(podzap[1] / (double) n > podzap[k+1] / (double) podzap[1]) {
				output.push_back("ROLL");
				out *= podzap[1] / (double) n;
				k = 1;
			}
			else {
				output.push_back("FIRE");
				out *= podzap[k+1] / (double) podzap[k];
				k++;
			}
			//cout << i << ": " << out << endl;
		}
		//cout << out << endl;
		printf("%.11lf\n", out);
		for(int i=0; i<output.size(); ++i) {
			cout << output[i] << endl;
		}
	}
	return 0;
}