題意:有乙個人欠三個人分別p o s(1<=p o s<=10^5)塊錢,現在這個人手裡有n(1<=n<=10^5)塊crystal,但是每塊crystal在不同人看來是不一樣的
價值(1塊或者2塊),現在問是否存在一種分配方案使得能還清3個人的錢。
題解:首先給不同的crystal排優先順序,然後列舉滿足三個人的優先順序後貪心。
#include #include #include #include #define max(a , b) ((a) > (b) ? (a) : (b))
using namespace std;
const int pp[9] = ;
const int maxn = 100002;
struct node
}crystal[maxn];
int belong[maxn];
int a[3],rank[3],n,p,o,s;
void read()
}if(j == 3)
}if(j == 3) belong[crystal[i].id] = 0;}}
return (a[0] <= 0 && a[1] <= 0 && a[2] <= 0);
}void solve()
if(check(0,2,1))
if(check(1,0,2))
if(check(1,2,0))
if(check(2,0,1))
if(check(2,1,0))
puts("no solution");
return;
}int main()
return 0;
}