Submission #826370

# Submission time Handle Problem Language Result Execution time Memory
826370 2023-08-15T13:34:54 Z tolbi Wiring (IOI17_wiring) C++17
20 / 100
19 ms 2620 KB
#include <bits/stdc++.h>
using namespace std;
#include "wiring.h"

long long ara(long long a, long long b){
	if (a>b) return a-b;
	return b-a;
}
long long subtask1(vector<int> &r, vector<int> &b){
	int n = r.size();
	int m = b.size();
	vector<vector<long long>> dp(n, vector<long long>(m,-1));
	function<long long(int,int)> f;
	f = [&](int x, int y)->long long{
		if (dp[x][y]!=-1) return dp[x][y];
		if (x==n-1 && y==m-1){
			return ara(r[x],b[y]);
		}
		if (x==n-1){
			return dp[x][y]=ara(r[x],b[y])+f(x,y+1);
		}
		if (y==m-1){
			return dp[x][y]=ara(r[x],b[y])+f(x+1,y);
		}
		dp[x][y]=ara(r[x],b[y]);
		long long mava = f(x+1,y+1);
		mava=min(mava,f(x,y+1));
		mava=min(mava,f(x+1,y));
		return dp[x][y]+=mava;
	};
	return f(0,0);
}
long long subtask2(vector<int> &r, vector<int> &b){
	long long ans = 0;
	reverse(r.begin(), r.end());
	if (r.size()>b.size()){
		for (int i = 0; i < b.size(); i++){
			ans+=ara(r[i],b[i]);
		}
		for (int i = b.size(); i < r.size(); i++){
			ans+=ara(b[0],r[i]);
		}
	}
	else {
		for (int i = 0; i < r.size(); i++){
			ans+=ara(r[i],b[i]);
		}
		for (int i = r.size(); i < b.size(); i++){
			ans+=ara(r[0],b[i]);
		}
	}
	return ans;
}
long long min_total_length(std::vector<int> r, std::vector<int> b) {
	if (r.size()<=200 && b.size()<=200) return subtask1(r,b);
	if (*max_element(r.begin(), r.end())<*min_element(b.begin(), b.end())) return subtask2(r,b);
}

Compilation message

wiring.cpp: In function 'long long int subtask2(std::vector<int>&, std::vector<int>&)':
wiring.cpp:37:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for (int i = 0; i < b.size(); i++){
      |                   ~~^~~~~~~~~~
wiring.cpp:40:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |   for (int i = b.size(); i < r.size(); i++){
      |                          ~~^~~~~~~~~~
wiring.cpp:45:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |   for (int i = 0; i < r.size(); i++){
      |                   ~~^~~~~~~~~~
wiring.cpp:48:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for (int i = r.size(); i < b.size(); i++){
      |                          ~~^~~~~~~~~~
wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:57:1: warning: control reaches end of non-void function [-Wreturn-type]
   57 | }
      | ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 596 KB Output is correct
8 Correct 1 ms 596 KB Output is correct
9 Correct 1 ms 596 KB Output is correct
10 Correct 1 ms 596 KB Output is correct
11 Correct 1 ms 596 KB Output is correct
12 Correct 2 ms 596 KB Output is correct
13 Correct 1 ms 596 KB Output is correct
14 Correct 1 ms 596 KB Output is correct
15 Correct 1 ms 596 KB Output is correct
16 Correct 1 ms 596 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 468 KB Output is correct
3 Correct 13 ms 1404 KB Output is correct
4 Correct 14 ms 2168 KB Output is correct
5 Correct 15 ms 2172 KB Output is correct
6 Correct 18 ms 2608 KB Output is correct
7 Correct 18 ms 2620 KB Output is correct
8 Correct 18 ms 2360 KB Output is correct
9 Correct 19 ms 2616 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 18 ms 1864 KB 3rd lines differ - on the 1st token, expected: '1068938599', found: '49945450129073'
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 15 ms 1876 KB 3rd lines differ - on the 1st token, expected: '373710605', found: '10000000000'
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 596 KB Output is correct
8 Correct 1 ms 596 KB Output is correct
9 Correct 1 ms 596 KB Output is correct
10 Correct 1 ms 596 KB Output is correct
11 Correct 1 ms 596 KB Output is correct
12 Correct 2 ms 596 KB Output is correct
13 Correct 1 ms 596 KB Output is correct
14 Correct 1 ms 596 KB Output is correct
15 Correct 1 ms 596 KB Output is correct
16 Correct 1 ms 596 KB Output is correct
17 Correct 0 ms 212 KB Output is correct
18 Correct 1 ms 468 KB Output is correct
19 Correct 13 ms 1404 KB Output is correct
20 Correct 14 ms 2168 KB Output is correct
21 Correct 15 ms 2172 KB Output is correct
22 Correct 18 ms 2608 KB Output is correct
23 Correct 18 ms 2620 KB Output is correct
24 Correct 18 ms 2360 KB Output is correct
25 Correct 19 ms 2616 KB Output is correct
26 Correct 0 ms 212 KB Output is correct
27 Correct 0 ms 212 KB Output is correct
28 Incorrect 18 ms 1864 KB 3rd lines differ - on the 1st token, expected: '1068938599', found: '49945450129073'
29 Halted 0 ms 0 KB -