답안 #1040809

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1040809 2024-08-01T09:48:54 Z YassineBenYounes The Collection Game (BOI21_swaps) C++17
15 / 100
42 ms 1296 KB
#include<bits/stdc++.h>
//#include<chrono>
//#include<random>
#include "swaps.h"
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef double db;
ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;} // greatest common divisor (PGCD)
ll lcm(ll a , ll b) {return (a * b) / gcd(a , b);} // least common multiple (PPCM)
int dx[8] = {1, 0, 0, -1, 1, 1, -1, -1};
int dy[8] = {0, 1, -1, 0, 1, -1, -1, 1};
#define endl "\n"
#define ss second
#define ff first
#define all(x) (x).begin() , (x).end()
#define pb push_back
#define vi vector<int>
#define vii vector<pair<int,int>>
#define vl vector<ll>
#define vll vector<pair<ll,ll>>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd  pair<double,double>
#define vdd  vector<pdd>
#define speed ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define pbds tree<pii, null_type, less<pii>,rb_tree_tag, tree_order_statistics_node_update>
using namespace __gnu_pbds;
using namespace std;
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
 
////////////////////Only Clear Code//////////////////////////
 
void usaco_problem(){
    freopen("milkvisits.in", "r", stdin);
    freopen("milkvisits.out", "w", stdout);
}
 
void init(){
    #ifndef ONLINE_JUDGE
 
freopen("input.txt", "r", stdin);
 
freopen("output.txt", "w", stdout);
 
#endif // ONLINE_JUDGE
}
const int mx = 1005;
const int LOG = 22;
const int inf = 1e9;
const ll mod = 1e9+7;
const int sq = 320;
int n;
 
vi cur;
 
bool comp[mx][mx];
/*
void schedule(int i, int j){
    cur.pb(i > j);
}
 
vi visit(){
    vi v = cur;
    cur.clear();
    return v;
}*/
 
vi recur(vi v){
    if(v.size() == 1)return v;
    int md = v.size()/2;
    vi a, b;
    for(int i = 0; i < v.size();i++){
        if(i < md){
            a.pb(v[i]);
        }
        else{
            b.pb(v[i]);
        }
    }
    a = recur(a);
    b = recur(b);
    /*cout << v.size() << endl;
    for(int x : a){
        cout << x << " ";
    }
    cout << endl;
    for(int x : b){
        cout << x << " ";
    }
    cout << endl;*/
    /*for(int i = 0; i < a.size();i++){
        for(int j = 0;j < b.size();j++){
            schedule(a[i], b[j]);
        }
    }
    vi res = visit();*/
    int x = 0, y = 0;
    vi ans;
    while(x < a.size() && y < b.size()){
        int k = comp[a[x]][b[y]];
        if(k == 1){
            ans.pb(a[x]);
            x++;
        }
        else{
            ans.pb(b[y]);
            y++;
        }
    }
    while(x < a.size()){
        ans.pb(a[x]);
        x++;
    }
    while(y < b.size()){
        ans.pb(b[y]);
        y++;
    }
    return ans;
}
 
void solve(int N, int v){
    n = N;
    vi x;
    for(int i = 1; i <= n;i++){
        x.pb(i);
    }
    vii vec;
    for(int k = 1; k < n;k++){
        for(int r = 0; r <= 1;r++){
            for(int i = 0; i+k < n;i++){
                if((i/k) % 2 == r){
                    schedule(i+1, i+k+1);
                    vec.pb({i+1, i+k+1});
                }
            }
            vi res = visit();
            for(int i = 0; i < res.size();i++){
                comp[vec[i].ff][vec[i].ss] = res[i];
                //cout << vec[i].ff << " " << vec[i].ss << " " << res[i] << endl;
            }
            vec.clear();
        }
    }
    vi a = recur(x);
    /*for(int x : a){
        cout << x << " ";
    }
    cout << endl;*/
    answer(a);
}
/*
int32_t main(){
    init();
    speed;
    solve(4, 50);
}*/
/*
    NEVER GIVE UP!
    DOING SMTHNG IS BETTER THAN DOING NTHNG!!!
    Your Guide when stuck:
    - Continue keyword only after reading the whole input
    - Don't use memset with testcases
    - Check for corner cases(n=1, n=0)
    - Check where you declare n(Be careful of declaring it globally and in main)
*/

Compilation message

swaps.cpp: In function 'std::vector<int> recur(std::vector<int>)':
swaps.cpp:75:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |     for(int i = 0; i < v.size();i++){
      |                    ~~^~~~~~~~~~
swaps.cpp:102:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  102 |     while(x < a.size() && y < b.size()){
      |           ~~^~~~~~~~~~
swaps.cpp:102:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  102 |     while(x < a.size() && y < b.size()){
      |                           ~~^~~~~~~~~~
swaps.cpp:113:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  113 |     while(x < a.size()){
      |           ~~^~~~~~~~~~
swaps.cpp:117:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  117 |     while(y < b.size()){
      |           ~~^~~~~~~~~~
swaps.cpp: In function 'void solve(int, int)':
swaps.cpp:140:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  140 |             for(int i = 0; i < res.size();i++){
      |                            ~~^~~~~~~~~~~~
swaps.cpp: In function 'void usaco_problem()':
swaps.cpp:37:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |     freopen("milkvisits.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
swaps.cpp:38:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |     freopen("milkvisits.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
swaps.cpp: In function 'void init()':
swaps.cpp:44:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   44 | freopen("input.txt", "r", stdin);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
swaps.cpp:46:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   46 | freopen("output.txt", "w", stdout);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Correct
2 Correct 2 ms 344 KB Correct
3 Correct 11 ms 696 KB Correct
4 Correct 26 ms 944 KB Correct
5 Correct 23 ms 1064 KB Correct
6 Correct 28 ms 952 KB Correct
7 Correct 42 ms 952 KB Correct
8 Correct 23 ms 952 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Correct
2 Correct 2 ms 544 KB Correct
3 Correct 6 ms 856 KB Correct
4 Correct 23 ms 1180 KB Correct
5 Correct 34 ms 1080 KB Correct
6 Correct 23 ms 952 KB Correct
7 Correct 23 ms 1160 KB Correct
8 Correct 25 ms 1296 KB Correct
9 Correct 22 ms 1040 KB Correct
10 Correct 41 ms 940 KB Correct
11 Correct 22 ms 1200 KB Correct
12 Correct 24 ms 1160 KB Correct
13 Correct 27 ms 1204 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Not correct
2 Halted 0 ms 0 KB -