답안 #1104017

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1104017 2024-10-22T14:58:25 Z modwwe Tug of War (BOI15_tug) C++17
23 / 100
907 ms 6860 KB
#pragma GCC optimize("Ofast,unroll-loops")
//#pragma GCC optimize("conserve-stack")
#include<bits/stdc++.h>
#define int long long
#define ll long long
#define down cout<<'\n';
#define debug cout<<" cucuucucuuu",down
#define NHP     ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0);
#define modwwe  int t;cin>>t; while(t--)
#define bit(i,j) (i>>j&1)
#define sobit(a) __builtin_popcountll(a)
#define task "test"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define pb push_back
#define mask(i) (1<<i)
#define checktime   cerr << (double)clock() / CLOCKS_PER_SEC * 1000  << " ms";
using namespace std;
#define getchar_unlocked getchar

inline int scan()
{
    char c = getchar_unlocked();
    int x = 0;
    while (c < '0' || c > '9')
    {
        c = getchar_unlocked();
    }
    while (c >= '0' && c <= '9')
    {
        x = (x << 1) + (x << 3) + c - '0';
        c = getchar_unlocked();
    }
    return x;
};
void phongbeo();
const int inf = 1e18;
const int mod2 = 1e9 + 7;
const int  mod1 = 998244353;
int add(int x,int y)
{
    if(x+y>=mod2) x-=mod2;
    return x+y;
}
struct icd
{
    long double a;
    int b;
};
struct ib
{
    int a;
    int b;
};
struct ic
{
    int a, b, c, d;
};
struct ie
{
    int a, b, c, d, e;

};

ll n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center;
int  i, s10, s12,k1,k2,k3,s11,limit,w,l,r,last,root;
int kk;
int el = 19;

main()
{
    if(fopen(task".inp","r"))
    {
        fin(task);
        fou(task);
    }
    NHP
    /// cin>>s1;
///modwwe
    phongbeo();
    // checktime
}
vector<int> v[60001];
int d[60001];
bitset<600010>dp,dp2;
ic c[60001];
ib b[60001];
bool dee=0;
vector<int> v4;
void dfs(int x,int a)
{
    v4.pb(x);
    bool de=0;
    d[x]=a;
    if(a==1)
        s3+=c[x].c;
    s4+=c[x].c;
    int s=0;
    if(a==1)s=c[x].a;
    else s=c[x].b;

        for(auto f:v[s])
            if(f!=x)
        {
                if(d[f]!=3-a&&d[f]!=0)
                    dee=1;
            if(d[f]==0)
                dfs(f,3-a);
        }
}
void phongbeo()
{
    cin>>n>>m;
    for(int i=1; i<=n*2; i++)
    {
        cin>>l>>r>>s2;
        c[i]= {l,r+n,s2};
        v[r+n].pb(i);
        v[l].pb(i);
        s5+=s2;
    }
    for(int i=1; i<=n*2; i++)
        if(d[i]==0)
        {
            dee=0;
            s3=0;
            s4=0;
            dfs(i,1);
            if(!dee)
                b[++dem2].a=s3,
                         b[++dem2].a=s4-s3;
            else
            {
                for(auto x:v4)
                    d[x]=0;
                dee=0;
                s3=0;
                s4=0;
                dfs(i,2);
                if(!dee)
                    b[++dem2].a=s3,
                             b[++dem2].a=s4-s3;
                else
                {
                    cout<<"NO";
                    exit(0);
                }
            }
                            v4.clear();
        }
    dp.set(0);
    for(int i=1; i<=dem2; i++)
    {
        dp2=(dp<<b[i].a);
        dp=(dp<<b[i].b);
        dp=(dp|dp2);
    }
    for(int i=0; i<=600000; i++)
        if(dp[i]&&abs(i*2-s5)<=m)
        {
            cout<<"YES";
            exit(0);
        }
    cout<<"NO";
}

Compilation message

tug.cpp:70:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   70 | main()
      | ^~~~
tug.cpp: In function 'void dfs(long long int, long long int)':
tug.cpp:93:10: warning: unused variable 'de' [-Wunused-variable]
   93 |     bool de=0;
      |          ^~
tug.cpp: In function 'int main()':
tug.cpp:13:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 | #define fin(x) freopen(x".inp","r",stdin)
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~
tug.cpp:74:9: note: in expansion of macro 'fin'
   74 |         fin(task);
      |         ^~~
tug.cpp:14:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 | #define fou(x) freopen(x".out","w",stdout)
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~
tug.cpp:75:9: note: in expansion of macro 'fou'
   75 |         fou(task);
      |         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 5200 KB Output is correct
2 Correct 3 ms 5200 KB Output is correct
3 Correct 4 ms 5200 KB Output is correct
4 Correct 3 ms 5200 KB Output is correct
5 Correct 3 ms 5200 KB Output is correct
6 Correct 3 ms 5200 KB Output is correct
7 Correct 3 ms 5200 KB Output is correct
8 Correct 3 ms 5200 KB Output is correct
9 Correct 2 ms 5200 KB Output is correct
10 Correct 2 ms 5200 KB Output is correct
11 Correct 2 ms 5296 KB Output is correct
12 Correct 3 ms 5200 KB Output is correct
13 Correct 2 ms 5200 KB Output is correct
14 Correct 2 ms 5200 KB Output is correct
15 Correct 3 ms 5200 KB Output is correct
16 Correct 3 ms 5200 KB Output is correct
17 Correct 3 ms 5200 KB Output is correct
18 Correct 2 ms 5200 KB Output is correct
19 Correct 3 ms 5200 KB Output is correct
20 Correct 2 ms 5200 KB Output is correct
21 Correct 2 ms 5452 KB Output is correct
22 Correct 2 ms 5200 KB Output is correct
23 Incorrect 3 ms 5276 KB Output isn't correct
24 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 5200 KB Output is correct
2 Correct 3 ms 5200 KB Output is correct
3 Correct 4 ms 5200 KB Output is correct
4 Correct 3 ms 5200 KB Output is correct
5 Correct 3 ms 5200 KB Output is correct
6 Correct 3 ms 5200 KB Output is correct
7 Correct 3 ms 5200 KB Output is correct
8 Correct 3 ms 5200 KB Output is correct
9 Correct 2 ms 5200 KB Output is correct
10 Correct 2 ms 5200 KB Output is correct
11 Correct 2 ms 5296 KB Output is correct
12 Correct 3 ms 5200 KB Output is correct
13 Correct 2 ms 5200 KB Output is correct
14 Correct 2 ms 5200 KB Output is correct
15 Correct 3 ms 5200 KB Output is correct
16 Correct 3 ms 5200 KB Output is correct
17 Correct 3 ms 5200 KB Output is correct
18 Correct 2 ms 5200 KB Output is correct
19 Correct 3 ms 5200 KB Output is correct
20 Correct 2 ms 5200 KB Output is correct
21 Correct 2 ms 5452 KB Output is correct
22 Correct 2 ms 5200 KB Output is correct
23 Incorrect 3 ms 5276 KB Output isn't correct
24 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 379 ms 6224 KB Output is correct
2 Correct 6 ms 6224 KB Output is correct
3 Correct 399 ms 6416 KB Output is correct
4 Correct 8 ms 6224 KB Output is correct
5 Correct 371 ms 6392 KB Output is correct
6 Correct 6 ms 6224 KB Output is correct
7 Correct 388 ms 6392 KB Output is correct
8 Correct 7 ms 6224 KB Output is correct
9 Correct 907 ms 6292 KB Output is correct
10 Correct 6 ms 6224 KB Output is correct
11 Correct 373 ms 6288 KB Output is correct
12 Correct 7 ms 6224 KB Output is correct
13 Correct 407 ms 6224 KB Output is correct
14 Correct 382 ms 6292 KB Output is correct
15 Correct 7 ms 6224 KB Output is correct
16 Correct 418 ms 6224 KB Output is correct
17 Correct 7 ms 6224 KB Output is correct
18 Correct 431 ms 6224 KB Output is correct
19 Correct 7 ms 6224 KB Output is correct
20 Correct 377 ms 6264 KB Output is correct
21 Correct 9 ms 6860 KB Output is correct
22 Correct 307 ms 6240 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 5200 KB Output is correct
2 Correct 3 ms 5200 KB Output is correct
3 Correct 4 ms 5200 KB Output is correct
4 Correct 3 ms 5200 KB Output is correct
5 Correct 3 ms 5200 KB Output is correct
6 Correct 3 ms 5200 KB Output is correct
7 Correct 3 ms 5200 KB Output is correct
8 Correct 3 ms 5200 KB Output is correct
9 Correct 2 ms 5200 KB Output is correct
10 Correct 2 ms 5200 KB Output is correct
11 Correct 2 ms 5296 KB Output is correct
12 Correct 3 ms 5200 KB Output is correct
13 Correct 2 ms 5200 KB Output is correct
14 Correct 2 ms 5200 KB Output is correct
15 Correct 3 ms 5200 KB Output is correct
16 Correct 3 ms 5200 KB Output is correct
17 Correct 3 ms 5200 KB Output is correct
18 Correct 2 ms 5200 KB Output is correct
19 Correct 3 ms 5200 KB Output is correct
20 Correct 2 ms 5200 KB Output is correct
21 Correct 2 ms 5452 KB Output is correct
22 Correct 2 ms 5200 KB Output is correct
23 Incorrect 3 ms 5276 KB Output isn't correct
24 Halted 0 ms 0 KB -