Submission #1195321


Source Code Expand

// {{{ by shik
#include <bits/stdc++.h>
#include <unistd.h>
#define SZ(x) ((int)(x).size())
#define ALL(x) begin(x),end(x)
#define REP(i,n) for ( int i=0; i<int(n); i++ )
#define REP1(i,a,b) for ( int i=(a); i<=int(b); i++ )
#define FOR(it,c) for ( auto it=(c).begin(); it!=(c).end(); it++ )
#define MP make_pair
#define PB push_back
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
typedef vector<int> VI;

#ifdef SHIK
template<typename T>
void _dump( const char* s, T&& head ) { cerr<<s<<"="<<head<<endl; }

template<typename T, typename... Args>
void _dump( const char* s, T&& head, Args&&... tail ) {
    int c=0;
    while ( *s!=',' || c!=0 ) {
        if ( *s=='(' || *s=='[' || *s=='{' ) c++;
        if ( *s==')' || *s==']' || *s=='}' ) c--;
        cerr<<*s++;
    }
    cerr<<"="<<head<<", ";
    _dump(s+1,tail...);
}

#define dump(...) do { \
    fprintf(stderr, "%s:%d - ", __PRETTY_FUNCTION__, __LINE__); \
    _dump(#__VA_ARGS__, __VA_ARGS__); \
} while (0)

template<typename Iter>
ostream& _out( ostream &s, Iter b, Iter e ) {
    s<<"[";
    for ( auto it=b; it!=e; it++ ) s<<(it==b?"":" ")<<*it;
    s<<"]";
    return s;
}

template<typename A, typename B>
ostream& operator <<( ostream &s, const pair<A,B> &p ) { return s<<"("<<p.first<<","<<p.second<<")"; }
template<typename T>
ostream& operator <<( ostream &s, const vector<T> &c ) { return _out(s,ALL(c)); }
template<typename T, size_t N>
ostream& operator <<( ostream &s, const array<T,N> &c ) { return _out(s,ALL(c)); }
template<typename T>
ostream& operator <<( ostream &s, const set<T> &c ) { return _out(s,ALL(c)); }
template<typename A, typename B>
ostream& operator <<( ostream &s, const map<A,B> &c ) { return _out(s,ALL(c)); }
#else
#define dump(...)
#endif

template<typename T>
void _R( T &x ) { cin>>x; }
void _R( int &x ) { scanf("%d",&x); }
void _R( long long &x ) { scanf("%" PRId64,&x); }
void _R( double &x ) { scanf("%lf",&x); }
void _R( char &x ) { scanf(" %c",&x); }
void _R( char *x ) { scanf("%s",x); }

void R() {}
template<typename T, typename... U>
void R( T& head, U&... tail ) {
    _R(head);
    R(tail...);
}

template<typename T>
void _W( const T &x ) { cout<<x; }
void _W( const int &x ) { printf("%d",x); }
template<typename T>
void _W( const vector<T> &x ) {
    for ( auto i=x.cbegin(); i!=x.cend(); i++ ) {
        if ( i!=x.cbegin() ) putchar(' ');
        _W(*i);
    }
}

void W() {}
template<typename T, typename... U>
void W( const T& head, const U&... tail ) {
    _W(head);
    putchar(sizeof...(tail)?' ':'\n');
    W(tail...);
}

#ifdef SHIK
#define FILEIO(...)
#else
#define FILEIO(name) do {\
    freopen(name ".in","r",stdin); \
    freopen(name ".out","w",stdout); \
} while (0)
#endif

// }}}

const int N=1e5+10;
int n,m,q,qv[N],qd[N],qc[N],c[N],d[N];
VI e[N];
int main() {
    R(n,m);
    REP(i,m) {
        int a,b;
        R(a,b);
        e[a].PB(b);
        e[b].PB(a);
    }
    memset(d,-1,sizeof(d));
    R(q);
    REP(i,q) R(qv[i],qd[i],qc[i]);
    for ( int i=q-1; i>=0; i-- ) {
        queue<int> que;
        auto push=[&]( int p, int pd, int pc ) {
            // dump(p,pd,pc);
            if ( pd<=d[p] ) return;
            d[p]=pd;
            if ( !c[p] ) c[p]=pc;
            que.push(p);
        };
        push(qv[i],qd[i],qc[i]);
        while ( !que.empty() ) {
            int p=que.front(); que.pop();
            // dump(i,p,c[p],d[p]);
            for ( int j:e[p] ) push(j,d[p]-1,qc[i]);
        }
    }
    REP1(i,1,n) W(c[i]);
    return 0;
}

Submission Info

Submission Time
Task B - Splatter Painting
User shik
Language C++14 (GCC 5.4.1)
Score 700
Code Size 3654 Byte
Status AC
Exec Time 119 ms
Memory 8824 KB

Compile Error

./Main.cpp: In function ‘void _R(long long int&)’:
./Main.cpp:62:46: warning: format ‘%ld’ expects argument of type ‘long int*’, but argument 2 has type ‘long long int*’ [-Wformat=]
 void _R( long long &x ) { scanf("%" PRId64,&x); }
                                              ^
./Main.cpp: In function ‘void _R(int&)’:
./Main.cpp:61:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
 void _R( int &x ) { scanf("%d",&x); }
                                   ^
./Main.cpp: In function ‘void _R(long long int&)’:
./Main.cpp:62:47: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
 void _R( long long &x ) { scanf("%" PRId64,&x); }
                                               ^
./Main.cpp: In function ‘void _R(double&)’:
./Main.cpp:63:39: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-resu...

Judge Result

Set Name Sample Subtask1 All
Score / Max Score 0 / 0 200 / 200 500 / 500
Status
AC × 2
AC × 19
AC × 35
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt
Subtask1 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt
All 00_example_01.txt, 00_example_02.txt, 10_01.txt, 10_02.txt, 10_03.txt, 10_04.txt, 10_05.txt, 10_06.txt, 10_07.txt, 10_08.txt, 10_09.txt, 10_10.txt, 10_11.txt, 10_12.txt, 10_13.txt, 10_14.txt, 10_15.txt, 10_16.txt, 10_17.txt, 20_01.txt, 20_02.txt, 20_03.txt, 20_04.txt, 20_05.txt, 20_06.txt, 20_07.txt, 20_08.txt, 20_09.txt, 20_10.txt, 20_11.txt, 20_12.txt, 20_13.txt, 20_14.txt, 20_15.txt, 20_16.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 7 ms 4860 KB
00_example_02.txt AC 2 ms 4352 KB
10_01.txt AC 3 ms 4352 KB
10_02.txt AC 2 ms 4352 KB
10_03.txt AC 2 ms 4352 KB
10_04.txt AC 3 ms 4352 KB
10_05.txt AC 3 ms 4352 KB
10_06.txt AC 3 ms 4352 KB
10_07.txt AC 3 ms 4352 KB
10_08.txt AC 4 ms 4352 KB
10_09.txt AC 4 ms 4352 KB
10_10.txt AC 4 ms 4352 KB
10_11.txt AC 4 ms 4352 KB
10_12.txt AC 4 ms 4352 KB
10_13.txt AC 4 ms 4352 KB
10_14.txt AC 3 ms 4352 KB
10_15.txt AC 3 ms 4352 KB
10_16.txt AC 4 ms 4480 KB
10_17.txt AC 4 ms 4352 KB
20_01.txt AC 119 ms 7680 KB
20_02.txt AC 110 ms 7680 KB
20_03.txt AC 112 ms 7680 KB
20_04.txt AC 15 ms 4992 KB
20_05.txt AC 5 ms 4352 KB
20_06.txt AC 12 ms 4608 KB
20_07.txt AC 6 ms 4352 KB
20_08.txt AC 33 ms 4608 KB
20_09.txt AC 5 ms 4352 KB
20_10.txt AC 37 ms 4480 KB
20_11.txt AC 44 ms 4608 KB
20_12.txt AC 50 ms 7552 KB
20_13.txt AC 83 ms 7808 KB
20_14.txt AC 91 ms 7808 KB
20_15.txt AC 88 ms 8696 KB
20_16.txt AC 89 ms 8824 KB