Submission #293340

#TimeUsernameProblemLanguageResultExecution timeMemory
293340shrek12357Paint By Numbers (IOI16_paint)C++11
32 / 100
1 ms416 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <climits>
#include <cmath>
#include <fstream>
#include <queue>
#include "paint.h"
using namespace std;

#define MAXN 105

bool check[MAXN][2];

void solve(int n, int val, int idx) {
	for (int i = n - val; i < val; i++) {
		check[i + idx][0] = true;
	}
	for (int i = 0; i < n - val; i++) {
		check[i + idx][1] = true;
		check[i + idx][0] = true;
	}
	for (int i = val; i < n; i++) {
		check[i + idx][0] = true;
		check[i + idx][1] = true;
	}
}

string solve_puzzle(string s, vector<int> c) {
	int sum = 0;
	for (int i = 0; i < c.size(); i++) {
		sum += c[i];
	}
	for (int i = 0; i < s.size(); i++) {
		check[i][0] = false;
		check[i][1] = false;
	}
	int curIdx = 0;
	for (int i = 0; i < c.size(); i++) {
		sum -= c[i];
		int minVal = s.size() - (c.size() - i - 1 + sum);
		solve(minVal - curIdx, c[i], curIdx);
		curIdx += c[i] + 1;
	}
	string ans = "";
	for (int i = 0; i < s.size(); i++) {
		if (check[i][0] && check[i][1]) {
			ans += "?";
		}
		else if (check[i][0]) {
			ans += "X";
		}
		else {
			ans += "_";
		}
	}
	return ans;
}

Compilation message (stderr)

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:34:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |  for (int i = 0; i < c.size(); i++) {
      |                  ~~^~~~~~~~~~
paint.cpp:37:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for (int i = 0; i < s.size(); i++) {
      |                  ~~^~~~~~~~~~
paint.cpp:42:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |  for (int i = 0; i < c.size(); i++) {
      |                  ~~^~~~~~~~~~
paint.cpp:49:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |  for (int i = 0; i < s.size(); i++) {
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...