Tuesday, October 15, 2013

580 - Critical Mass UVA Online Judge

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=714&page=show_problem&problem=841



#include <cmath>
#include <ctime>
#include <iostream>
#include <string>
#include <vector>
#include<cstdio>
#include<cstdlib>
#include<stack>
#include<queue>
#include<map>
#include<algorithm>
#include<sstream>
#include<cstring>
#define For(i,n) for(int i=0;(i)<n;i++)
#define mp make_pair
#define pb push_back
#define MOD 10000007
using namespace std;

int main(){

    int p[]={3,6};
    int *t=p;
    int x=*t++;
    cout<<*t<<x;
   long long  int dp[101][4];
    memset(dp,0,sizeof(dp));
    dp[1][0]=1;dp[1][1]=1;
    dp[2][0]=2;dp[2][1]=1;dp[2][2]=1;
    For(i,101){
        if(i<3)continue;
        For(j,3){
            dp[i][0]+=dp[i-1][j];
        }
        dp[i][1]=dp[i-1][0];
        dp[i][2]=dp[i-1][1];
        dp[i][3]=dp[i-1][2]+2*dp[i-1][3];

    }
    int n;
    cin>>n;
    while(n!=0){
        cout<<dp[n][3]<<endl;
        cin>>n;
    }
}