Submission #143034

#TimeUsernameProblemLanguageResultExecution timeMemory
143034Ruxandra985Calvinball championship (CEOI15_teams)C++14
100 / 100
456 ms760 KiB

/// vreau sa ma impusc puneam MOD 10^9 + 7 nu pot sa cred....

#include <cstdio>
#include <iostream>
#include <cstring>
#define DIMN 10010
#define MOD 1000007
using namespace std;
long long v[DIMN],maxi_now[DIMN];
long long s[2][DIMN];
int main()
{
  //  FILE *fin = fopen ("a.in","r");
  //  FILE *fout = fopen ("a.out","w");
   // freopen ("a.in" , "r" , stdin);
   // freopen ("a.out" , "w" , stdout);
    long long n,i,lin,j;
    scanf ("%lld",&n);
    for (i=1;i<=n;i++){
        scanf ("%lld",&v[i]);
        maxi_now[i] = max ( maxi_now[i-1] , v[i] );
    }

    /// secv e de forma : prefix comun  , v[i]-1 , orice respecta

    long long sol = 0;

    for (i=0;i<=n;i++)
        s[0][i] = 1;

    for (i=1;i<n;i++){
        lin = (i&1);
        for (j=0;j<=n;j++){
            s[lin][j] = (s[1-lin][j+1] + (s[1-lin][j] * j)%MOD)%MOD;
        }
        /// sufixul pe care il modificam are lungimea i
        /// schimbi n-i ca sa scada lexicografic
        sol = (sol + (s[lin][maxi_now[n-i-1]] * (v[n-i] - 1)%MOD)%MOD);
        memset (s[1-lin] , 0 , sizeof(s[1-lin]));
    }


    printf ("%lld" , (sol + v[n])%MOD);
    return 0;
}

Compilation message (stderr)

teams.cpp: In function 'int main()':
teams.cpp:19:11: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf ("%lld",&n);
     ~~~~~~^~~~~~~~~~~
teams.cpp:21:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf ("%lld",&v[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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...