usaco Electric Fence

来源:互联网 发布:买卖域名好赚吗 编辑:程序博客网 时间:2024/05/22 00:55

这道题比较简单。

不过还是得注意考虑几种特殊情况,如下所示:


还有就是得去掉相交的点即可。

代码如下:

/*ID: guo geerPROG: fence9LANG: C++*/#include<iostream>#include<fstream>#include<cstdio>#include<cstring>#include<string>#include<cmath>using namespace std;int main(){    freopen("fence9.in","r",stdin);    freopen("fence9.out","w",stdout);    int n, m, p;    while(scanf("%d %d %d", &n,&m,&p)==3)    {           int res = 0;           if(n != 0)           {                 for(int i=1; i<n; i++)                  {                       res += (i*m)/n;                         if((i*m)%n == 0)                       res --;                 }           }           if(n < p)           {                for(int i=1; i<p-n; i++)                {                       res += (i*m)/(p-n);                         if((i*m)%(p-n) == 0)                       res --;                }                       }           else if(n > p)           {                for(int i=1; i<n-p; i++)                {                       res -= (i*m)/(n-p);                  }           }           if(n>0&&p>n) res += m-1;           printf("%d\n", res);    }    return 0;}